我有一个数组。它由10个数组组成。
var arr = [[], [], [], [], [], [], [], [], [], []];
这10个阵列中的每一个都有不同数量的数字。我想获得10个阵列中的最后一个数字。
我试过这样做:
var lastNums = [];
var i = 0;
var j = 0;
for (var k = 0; k < 10; k++) {
i = arr[k].length - 1; //This code gets number of the last number
lastNums[j] = arr[k][i];
j++;
}
但它似乎不起作用。在Chrome控制台中,我得到:
TypeError:无法读取未定义的属性“length”
答案 0 :(得分:2)
如果没有定义数组arr的错误,可以执行以下操作:
lastNumbers = arr.map(function(k){
return k[k.length - 1];
})
现在lastNumbers数组将保存arr中每个数组的最后一个数字。 使用内置数组映射函数的好处是你没有 需要关心阵列的大小。以上解决方案适用于任何 数组的长度。
答案 1 :(得分:0)
var arr = [[1,2,3], [4,5,6,7], [8,5,6], [1,6,4,2], [8,6,3,2], [4,5,7,8], [5,4,2,2,1], [5,6,7], [4], [8,8]];
var lastNums = [];
for(var i=0;i<arr.length;i++){
if(arr[i].length > 0){
lastNums.push(arr[i][arr[i].length-1]);
}
}
alert(lastNums);