从2D数组中获取子数组

时间:2014-07-08 07:29:57

标签: javascript jquery arrays

我有一个数组数组

-Array1 
 [0]+ SubArray1.1   
    + SubArray1.2   
 [1]+ SubArray2.1   
    + SubArray2.2 

我想提取SubArray1.2,SubArray2.2 ...即每行的第二个索引并将其存储在不同的集合中。

这是我的jsfiddl:http://jsfiddle.net/gkVyC/1/

这是我到目前为止所尝试的:

 var Newcollection=[];

 $.each(Array1, function (index, value) {
     Newcollection.push(value[1]);
 });

Newcolletion返回undefined。我见过slice()方法,但示例是一维数组。在我的情况下,我无法实现它。

4 个答案:

答案 0 :(得分:0)

试试这个

var subarray= [];
for(var i = 0; i<yourarray.length; i++) {
   subarray.push(yourarray[i][1]); //1 for 2nd element
}
return subarray;

<强>更新

检查此fiddle

你的小提琴有两个错误

1)您在array1

中推了两次Array
   Array.push(Array1)
   Array.push(Array1)

2)您使用Array1代替Array

进行循环播放
$.each(Array1, function (index, value)

答案 1 :(得分:0)

小提琴的: http://jsfiddle.net/TwKf4/

JS

var input = [[[1,2],[3,4]],[[5,6],[7,8]],[[9,10],[11,12]]];
var output = Array();
for(var i=0;i<input.length;i++)
{
    if(input[i][1])
        output.push(input[i][1]);
}
console.log(output);

这是你的小提琴更新所需的输出:

http://jsfiddle.net/gkVyC/5/

JS:

var Array = []
var Array1=[]
var Array2=[]

Array1.push(1.1)
Array1.push(2.1)
Array2.push(1.2)
Array2.push(1.2)


Array.push(Array1)
Array.push(Array1)

console.log(Array);

var Newcollection =[];
for(var i=0;i<Array.length;i++)
{
    if(Array[i][1])
        Newcollection.push(Array[i][1]);
}

for(var i=0;i<Newcollection.length;i++)
   alert(Newcollection[i]);

答案 2 :(得分:0)

Subarray1等实际数组,还是其键是字符串化数字的对象?根据您在开始时所说的内容,它们看起来像{1: 'foo', 2: 'bar'},在这种情况下,键是字符串'1''2'。但是稍后您尝试以数字形式访问它们。

答案 3 :(得分:0)

您的问题是,您将数组数组放入变量Array,然后循环遍历Array1

从你的小提琴:

var Array = []
var Array1=[]
var Array2=[]

Array1.push(1.1)  // you're looping over this one
Array1.push(2.1)
Array2.push(1.2)
Array2.push(1.2)

Array.push(Array1) // but they're in here
Array.push(Array1) // and this one should be pushing `Array2`

这是你的小提琴,更新后工作:http://jsfiddle.net/gkVyC/2/