2013-04-05 45 views
-1

我產生這樣的數組,我要搶在每個子陣列中的第一項:選擇項目的Javascript

arrayName = [[item1,item2,item3,item4],[item1,item2,item3,item4],[item1,item2,item3,item4]]; 

我在一個循環中嘗試這樣的:

var num = arrayName.length; 
for (i=0; i < num; i++) { 
var title1 = arrayName[i][0]; 
} 

但我得到這個戒備:

alert(title1); 
= 
[ 
[ 
[ 

我需要:

alert(title1); 
= 
item1 
item1 
item1 

我試過使用.nodeValue,.firstChild等,但仍然沒有找到答案。什麼是正確的方法?

+3

你會得到什麼,如果你'console.log(arrayName)'? – Passerby 2013-04-05 08:12:20

+1

你在使用字符串嗎? – 2013-04-05 08:13:15

+0

是項目 - item1,item2等變量名稱或應該是字符串 - 'arrName = [[「item1」,「item2」],[「item1」,「item2」]]; - 它在這裏工作 - http: //jsbin.com/ulasuv/1/; – 2013-04-05 08:15:43

回答

1
var num = arrayName.length; 
var title1 = new Array(); 
for (i=0; i < num; i++) { 
title1.push(arrayName[i][0]); 
} 
console.log(title1); 

更好?

+0

這有什麼問題? – 2013-04-05 08:18:33

+0

我沒有downvote,但這個答案並沒有解釋爲什麼OP的代碼會產生警報輸出'['。 – nnnnnn 2013-04-05 08:19:21

+0

我們不知道這些'物品'是什麼......他們甚至可能包含'['。此外,'var title1'正在每個循環迭代中重置。而且他沒有精確地說明'alert()'何時執行。坦率地說,我認爲其他回答者只是想獲得優勢... – 2013-04-05 08:21:52

0

您可以使用Array.prototype.map方法。

var arrayName = [[item1,item2,item3,item4],[item1,item2,item3,item4],[item1,item2,item3,item4]]; 

var childrenArray = arrayName.map(function(childArray) { return childArray[0]; }); 

JSFiddle example

+0

但是,如果問題中顯示的代碼不起作用,這不會起作用嗎? – nnnnnn 2013-04-05 08:17:53

+0

是你倒了其他答案嗎? – 2013-04-05 08:19:43

+0

我假設item1,item2等是變量。在我的示例中,我使用了字符串 @ d'alar'cop:不,您的解決方案也可以 – Cattode 2013-04-05 08:21:03

0

我發現它是如何被創建的陣列。每個子數組都被推入到這個數組中,但它正在檢測[作爲字符串的一部分。改變這種推動解決了我的問題。感謝您的輸入,雖然:)