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 に答える