簡體   English   中英

從2D數組獲取子數組

[英]Get subarray from 2D Array

我有一個數組數組

-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()方法,但示例是一維數組。 在我的情況下,我無法實現它。

嘗試這個

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

Subarray1等是實際數組,還是鍵為字符串數字的對象? 從您一開始所說的內容來看,它們好像是{1: 'foo', 2: 'bar'} ,在這種情況下,鍵是字符串'1''2' 但是稍后,您嘗試以數字形式訪問它們。

您的問題是,將數組數組放入變量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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM