2016-10-24 44 views
1

我想沿着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

你不是定義一個數組,而是一個對象。 array1.sub1.length會給你一個數組的長度 – Coss

+2

'Object.keys(array1).length'因爲'array1'不是一個數組 – gurvinder372

+0

@ gurvinder372謝謝,這對我想要的工作。是否可以定義一個包含子數組的數組? –

回答

1

array1不是數組,是一個對象。 sub1等是數組,那麼你可以:

array1.sub1.length; // returns 3 
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); 
 
});

+1

但IE8及以下版本,Opera和FF 3.6及以下版本不支持Object.keys。 – Sankar

+0

您可以使用['for ... in'](https://developer.mozilla.org/en/US/docs/Web/JavaScript/Reference/Statements/for...in)循環檢查[ 'hasOwnProperty'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/hasOwnProperty) –

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);

-1

array1是一個JSON對象。所以

array1.subArray.length

應該工作

+0

不幸的是,它('array1')是一個對象。 – Sankar

+0

@SankarRaj這就是我說的。 'array1'是一個對象。不明白反對票。 –

0

你總是可以做這樣的事情:

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

這將壓平的數組,所以你可以使用長度等

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);

OUTPUT

尺寸:4

工作原理

轉換的鍵的陣列,然後用Array.map 映射回的值。然後,可以得到這個數組的長度。 Gg wp。

注意:您也可以在開始時創建一個var,然後將其用於您的所有進程。