javascript - javascript 数组的长度,其中项目是对象

标签 javascript jquery

我也遇到过这个问题。我定义了一个数组并用对象填充它, 如果第一种情况我的数据数组在 Firebug 控制台上看起来像这样:

data = [
    Object { code="6", id="1073148", key="82628835"},
    Object { code="17", id="2073140", key="83628837"}
]

当我检查它的长度时,我从 data.length 中得到 2

在第二种情况下我有

data = [
    [Object { code="6", id="1073148", key="82628835"}],
    [Object { code="17", id="2073140", key="83628837"}]
]

当我检查 data.length 时,这个也会返回 2

有人可以解释一下为什么我在这种不同的情况下得到相同的长度吗?

回答一些问题后进行编辑 数据是使用 $.parseJSON 填充的,令我困惑的是 在第一种情况下,我可以通过 data[0].code 访问代码的值,在第二种情况下 我无法通过 data[0][0].code 访问它

如果它们是数组的相同子级,为什么我无法使用相同的索引访问它们。 那为什么它们的长度相同呢?

最佳答案

因为两种情况下 data.length 都只有 2

进一步解释:

每个对象都包含多个值,但是,您不会调用这些对象的长度。

data.length = 获取数据中 child 的数量(不是孙子、表兄弟、侄子和侄子)只是 child 。

在这两种情况下,无论对象是什么,数据中都有 2 个对象,因此长度 = 2

进一步:

这些对象是什么并不重要,你可以有一个字符串和一个子数组,它仍然会返回 2,因为它是我们要求长度的对象内的 2 个对象

UPDATE to answer second question brought up

访问的原因很简单,首先,您的 child 是典型的对象,如您的示例所示:

data = [ 
    //  These two CHILDREN are Typical Objects
    Object { code="6", id="1073148", key="82628835"}, 
    Object { code="17", id="2073140", key="83628837"} 
] 

因此您可以将对象 1 作为数据[0]访问。

但是在第二个示例中,子项是 ARRAY 类型对象,因此,每个子项可以有多个值。例如:

data = [   
    [Object { code="6", id="1073148", key="82628835"}],   
    [Object { code="17", id="2073140", key="83628837"}]   
]  
//  Your example here has 2 children but each child is an ARRAY type Object,
//  Each array has one child which is the object in each one
// thus you can call data[0][0] & data[1][0]
//  Could also be 
data = [   
    [Object { code="6", id="1073148", key="82628835"},   
    Object { code="17", id="2073140", key="83628837"}]   
]  
// in this later case, there is only one child
//  this one child, like in your example, is an ARRAY, but in this later example,
//  it has TWO children of its own
// thus you can call data[0][0] and data[0][1]

正如您所看到的,您的第二个示例没有两个子对象,而是包含 2 个子数组,每个数组都包含一个子对象。因此获取对象1的需求就变成了data[0][0]

其中 data[0] 获取第一个数组子对象,第二个 [0] 获取该数组子对象

明白了吗?

如果不告诉我!

关于javascript - javascript 数组的长度,其中项目是对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12186009/

相关文章:

javascript - JQuery/Javascript 选择器使用 toggle() 或 add/removeClass() 遍历元素数组

javascript - document.getElementById ("id").value 正在工作,但 $('#id).val 不起作用

javascript - 我如何简写这个严格的相等表达式

javascript - 在 Bootstrap 中防止在移动设备上加载带有 hide-md 或 hide-lg 的图像的最佳方法是什么?

javascript - 将值从 Controller 传递到指令

javascript - 替换变量中的特定字符 - jquery

javascript - 如何处理与 jQuery 不冲突的对象类

javascript - 需要在 Javascript 中有淡出效果

javascript - 我应该获取什么 height() 才能使列表填满屏幕?

jquery - 如何在特定浏览器选项卡/窗口/页面中打开链接/url?