我有一个数组数组
-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()
方法,但示例是一维数组。在我的情况下,我无法实现它。
答案 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);
这是你的小提琴更新所需的输出:
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/