选择项目的Javascript

问题描述:

我产生这样的数组,我要抢在每个子阵列中的第一项:选择项目的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

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

您可以使用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

我发现它是如何被创建的阵列。每个子数组都被推入到这个数组中,但它正在检测[作为字符串的一部分。改变这种推动解决了我的问题。感谢您的输入,虽然:)