我应该使用JSON数组还是对象?

Pau*_*aul 1 javascript arrays null json

我有以下代码:

$.each( orderedqty, function( priority, quantity ) {

    // for each priority

    if ( $(".switch[data-priorityid=" + priority + "]").attr("data-state") == "on" ) {

        // this priority is checked

        orderedqtyArray[ priority ] = 15;

    } else {

        orderedqtyArray[ priority ] = 10;

    }

});

console.info( orderedqtyArray );
console.info( JSON.stringify( orderedqtyArray ) );
Run Code Online (Sandbox Code Playgroud)

问题是这段代码返回:

[77:15,78:15]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,15,15]

[78:15]
[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL, NULL,NULL,NULL,NULL,NULL,NULL,15]

而不是一个美丽的json :(

Tim*_*sen 6

浏览器的console.log输出已经过优化,可以删除空值,但它是相同的数组.JSON不能这样做,它总是包含数组中的所有空值.

如果您希望字符串化输出看起来更像console.log,那么您需要将其定义为对象而不是数组.

var a = [], b = {};
a[5] = 1;
b[5] = 1;
console.log(JSON.stringify(a));
console.log(JSON.stringify(b));
Run Code Online (Sandbox Code Playgroud)

输出将是

[null, null, null, null, null, 1]
{"5": 1}
Run Code Online (Sandbox Code Playgroud)