如何检查包含子数组的数组的大小?

时间:2016-10-24 13:00:15

标签: javascript arrays sub-array

我想从下面的数组中找到array1.length的内容:

var array1 = {
 sub1: [1,2,3],
 sub2: ["K","J","H"],
 sub3: ["Mango","Armada","Leffen","Mew2king"],
 sub4: ['1/8"', '3/16"', '1/4"'],
};

现在我得到以下输出:

console.log(array1) //Object {sub1: Array[3], sub2: Array[3]...}
console.log(array1.length) //undefined
console.log(array1[1]) //undefined
console.log(array1[1].length //Cannot read property 'length' of undefined

我哪里错了?

6 个答案:

答案 0 :(得分:1)

array1不是数组,是一个对象。 sub1等等是数组,然后你可以:

array1.sub1.length; // returns 3

答案 1 :(得分:1)

您有一个Object,而不是Array

您可以遍历键并获取对象内部数组的长度。



var object = { sub1: [1, 2, 3], sub2: ["K", "J", "H"], sub3: ["Mango", "Armada", "Leffen", "Mew2king"], sub4: ['1/8"', '3/16"', '1/4"'] };
Object.keys(object).forEach(function (key) {
    console.log(object[key].length);
});




答案 2 :(得分:0)

试试这个......



var array1 = {
  sub1: [1, 2, 3],
  sub2: ["K", "J", "H"],
  sub3: ["Mango", "Armada", "Leffen", "Mew2king"],
  sub4: ['1/8"', '3/16"', '1/4"'],
};

console.log(array1.sub1.length,array1.sub2.length,array1.sub3.length,array1.sub4.length);




答案 3 :(得分:0)

您可以随时执行以下操作:

var array1 = [[1,2,3],["K","J","H"],["Mango","Armada","Leffen","Mew2king"],
 ['1/8"', '3/16"', '1/4"']];
var flatArray = [].concat.apply([],array1)

这将使阵列变平,以便您可以使用长度等。

答案 4 :(得分:0)

请参阅Converting JSON Object into Javascript array

var array1 = {
 sub1: [1,2,3],
 sub2: ["K","J","H"],
 sub3: ["Mango","Armada","Leffen","Mew2king"],
 sub4: ['1/8"', '3/16"', '1/4"'],
};
alert("Size : "+Object.keys(array1).map(function(k) { return array1[k] }).length);

输出

尺寸:4

如何运作

将键转换为数组,然后使用Array.map将值映射回来 然后,可以得到这个数组的长度。 Gg wp。

注意:您也可以在开头创建一个var,然后将其用于您的所有流程。

答案 5 :(得分:-1)

array1是一个JSON对象。所以

array1.subArray.length

应该有效