我想从下面的数组中找到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
我哪里错了?
答案 0 :(得分:1)
array1不是数组,是一个对象。 sub1
等等是数组,然后你可以:
array1.sub1.length; // returns 3
答案 1 :(得分:1)
您可以遍历键并获取对象内部数组的长度。
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
应该有效