我需要知道是否有任何JSON实现可以处理稀疏数组,令我满意。我已经看到了这个问题:How to represent a sparse array in JSON?但是使用对象而不是数组对我来说不是一个选择;我需要一个数组。
我的最低要求是实施填补“未定义”的任何空白。否则,我正在编写防御性代码,在JSON编码之前填补空白。
答案 0 :(得分:5)
答案 1 :(得分:2)
您是否可以使用属性名称为索引且属性值为值的对象,然后通过中间函数运行它以创建稀疏数组?
function getSparseArray(obj) {
var ary = [];
for (prop in obj) {
var i = parseInt(prop,10);
if (!isNaN(i)) {
ary[i] = obj[prop];
}
}
return ary;
}
您会发送类似
的内容{ "5":"Five", "11":"Eleven", "99":"Ninety-Nine"}
并获取一个仅使用三个值填充的数组:
ary[5] = "Five"
ary[11] = "Eleven"
ary[99] = "Ninety-Nine"
ary[0] = 'undefined'
ary[98] = 'undefined'
etc.
ary
这里的长度为100,但在你看来它将是一个“稀疏”阵列。