0

我有一个数组。它由 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:无法读取未定义的属性“长度”

4

2 回答 2

2

如果定义数组 arr 没有错误,可以这样做:

lastNumbers = arr.map(function(k){
   return k[k.length - 1];
})

现在 lastNumbers 数组将保存 arr 中每个数组的最后一个数字。使用内置数组映射函数的好处是您不需要关心数组的大小。上述解决方案适用于任何长度的数组。

于 2013-10-20T16:33:36.177 回答
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);
于 2013-10-20T16:34:34.097 回答