0

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

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

当我检查它的长度时,我2data.length

在第二种情况下,我有

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

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

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

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

如果它们是数组的同一个子元素,为什么我不能使用相同的索引访问它们。那为什么它们的长度相同?

4

2 回答 2

4

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

进一步解释:

每个对象都包含多个值,但是,您并没有要求这些对象的长度。

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

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

进一步:

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

更新 回答提出的第二个问题

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

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] 正在获取该数组子对象

得到它?

如果不只是让我知道!

于 2012-08-29T20:31:34.683 回答
3

当你分开它时真的很容易,见下文。

案例 1:包含 2 个对象的数组。

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

情况 2:包含 2 个数组的数组,每个数组包含一个对象。

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

因此长度为 2,因为data.length在两种情况下都包含 2 个项目。.

于 2012-08-29T20:33:54.007 回答