从2D Array中获取子数组

Get subarray from 2D Array

本文关键字:数组 获取 2D Array      更新时间:2023-09-26

我有一个数组的数组

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

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

Subarray1等实际数组,或对象的关键字是字符串化的数字?从你一开始说的,看起来它们是{1: 'foo', 2: 'bar'},在这种情况下,键是字符串'1''2'。但是稍后你会尝试以数字的形式访问它们

你的问题是,你把你的数组数组到一个变量Array,但然后循环Array1:

From your fiddle:

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/

试试这个

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

检查这个小提琴

你的小提琴有两个错误

1)在你的Array

中你按了两次array1
   Array.push(Array1)
   Array.push(Array1)

2)使用Array1而不是Array进行循环

$.each(Array1, function (index, value)

小提琴: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]);