我有一组由 PHP 的 json_encode
函数传递的数据。我正在使用 jQuery getJSON
函数对其进行解码:
$.getJSON("url", function (data) {
console.log(data);
});
控制台中的输出如下所示:
Object {1: Object, 2: Object, 3: Object, 4: Object, 5: Object, 6: Object, 7: Object, 8: Object, 9: Object, 10: Object}
我可以使用 data[1]
、data[2]
等访问每个数组,但为了更容易,我想到了循环,这样我就可以访问了一下子:
$.getJSON("url", function (data) {
for (var i = 0, len = data.length; i < len; i++) {
//do something
}
});
但是我不能让它工作,因为 data.length
返回值 undefined
。出了什么问题,我该如何解决?
最佳答案
对象没有 .length
属性。
如果您知道不必担心 hasOwnProperty
检查,一个简单的解决方案就是这样做:
Object.keys(data).length;
如果您有支持 IE 8 或更低版本,则必须使用循环,而不是:
var length= 0;
for(var key in data) {
if(data.hasOwnProperty(key)){
length++;
}
}
关于Javascript : array. 长度返回未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21552402/