Jquery - JSON.stringify,数组为空

Pet*_*ter 8 javascript jquery

我希望有人可以帮助我,数组值在帖子中是空的.

$(function start() {

    c_all = new Array('#div { font-color:#ff0000; border:1px solid #00ff00; }', '#div_2 { font-color:#ff0000; }', '.line2 { font-color:#00ffff; }');

    css(c_all);

});


function css(x) {

    values = new Array();

    for (i = 0; i < x.length; i++) {
        c0_selector = '' + x[i].match(/^.*{/) + '';
        c0_selector = c0_selector.replace(/\s*/g, '');
        c0_selector = c0_selector.replace(/{/, '');

        x[i] = x[i].replace(/^.*{/, '');
        x[i] = x[i].replace(/}/, '');

        c0_arr = x[i].split(';');

        values['' + c0_selector + ''] = new Array();

        $('#log').append(''+c0_selector+'<br />');

        for (i2 = 0; i2 < c0_arr.length; i2++)
        {
            values[''+c0_selector+''][i2] = c0_arr[i2].split(':');
            $('#log').append(''+c0_arr[i2]+'<br />');  
        }

    }

    $.ajax({
            type: 'post',
            data: JSON.stringify(values),
            contentType: 'application/json',
            dataType: 'json'
    });


}
Run Code Online (Sandbox Code Playgroud)

工作实例 - > http://www.jsfiddle.net/V9Euk/448/

提前致谢!彼得

use*_*716 12

尝试制作values一个Object,(就像它应该是javascript中的命名键).

var values = {};
Run Code Online (Sandbox Code Playgroud)

此外,使用关键字声明变量是一个非常好的主意var,因此您不会创建全局变量.

此外,没有必要,'' + c0_selector + ''因为你已经有一个字符串.做吧c0_selector.

成品记录填充的对象.http://www.jsfiddle.net/V9Euk/450/


Cha*_*ion 9

这直接来自ECMAScript规范.

抽象操作JA(value)序列化一个数组.它可以访问stringify方法调用的堆栈,缩进,间隙和空间.数组的表示仅包括零和array.length - 1之间的元素.命名属性将从字符串化中排除.数组被字符串化为左侧开括号,元素以逗号分隔,右侧括号右侧.

基本上任何命名属性都会从结果中排除.