Javascript : array. 长度返回未定义

标签 javascript jquery json

我有一组由 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/

相关文章:

javascript - ES6 静态方法指的是 self ?

javascript - 如何使用 JQuery 和 Codeigniter/PHP 刷新 3 个数据库驱动的 div?

javascript - 带有表格排序器的表格标题中的多行

javascript - 根据超链接文本中的最后一个单词更改背景

jquery - 如何通过ajax将css注入(inject)到文档中?

javascript - 如何将 JSON 文档集合转换为 GeoJSON FeatureCollection

javascript - 来自 JSON 的 VueJS 语言

javascript - 在方形空间图库页面中向下滚动时减慢文本淡入淡出

javascript - 当页面到达滚动中的某个点时加载宽度转换?

javascript - 尝试迭代 json 字符串