获取数组的每个子数组的最后一个元素
Get the last element of each sub-array of an array
我知道对于一个数组它可以使用下划线的 last
函数,所以在这个数组的情况下它将是:
myArray = [32, 1, 8, 31];
lastElement = _.last(myArray);
问题是当有这样一个矩阵时:
myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
而想要的结果是
lastElement = [5, 77, 2];
有什么建议吗?
您可以使用 array.prototype.map
将每个子数组转换为其中的最后一个元素。如果您不想改变 myArray
:
,您可以使用 array.prototype.pop
或 arr[arr.length - 1]
获取最后的元素
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
var lastElements = myArray.map(arr => arr.pop());
console.log(lastElements);
var lastElement = myArray.map((x) => {
return _.last(x);
});
使用map
和slice
(不会改变原始数组)
[[1, 3, 5], [55, 66, 77], [0, 1, 2]].map( s => s.slice(-1)[0] );
或者你也可以使用 ES6 map
let myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
let result = myArray.map(v => v[ v.length - 1] );
console.log(result );
看看这个。使用 map 遍历数组并提取最后一个元素。
不需要任何库。
let myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
let output = [];
output = myArray.map(m => m[m.length - 1] )
console.log(output)
你可以做到
var lastElement = myArray.map(_.last);
也许用 for 循环遍历它们。
lastElement = [];
for (var i = 0 ; i < myArray.length ; i++) {
lastElement.push(_.last(myArray[i]));
}
使用以下代码:-
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
lastElement = _.map(myArray, _.last);
console.log(lastElement)
// **Result is lastElement = [5, 77, 2];**
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
你可以简单地使用 Array.from
:
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
var res = Array.from(myArray, x => x[x.length - 1]);
console.log(res);
这里尚未回答的另一种可能性是 Array#reduce
:
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
var res = myArray.reduce((acc, curr) => acc.concat(curr[curr.length - 1]),[]);
console.log(res);
我知道对于一个数组它可以使用下划线的 last
函数,所以在这个数组的情况下它将是:
myArray = [32, 1, 8, 31];
lastElement = _.last(myArray);
问题是当有这样一个矩阵时:
myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
而想要的结果是
lastElement = [5, 77, 2];
有什么建议吗?
您可以使用 array.prototype.map
将每个子数组转换为其中的最后一个元素。如果您不想改变 myArray
:
array.prototype.pop
或 arr[arr.length - 1]
获取最后的元素
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
var lastElements = myArray.map(arr => arr.pop());
console.log(lastElements);
var lastElement = myArray.map((x) => {
return _.last(x);
});
使用map
和slice
(不会改变原始数组)
[[1, 3, 5], [55, 66, 77], [0, 1, 2]].map( s => s.slice(-1)[0] );
或者你也可以使用 ES6 map
let myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
let result = myArray.map(v => v[ v.length - 1] );
console.log(result );
看看这个。使用 map 遍历数组并提取最后一个元素。
不需要任何库。
let myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
let output = [];
output = myArray.map(m => m[m.length - 1] )
console.log(output)
你可以做到
var lastElement = myArray.map(_.last);
也许用 for 循环遍历它们。
lastElement = [];
for (var i = 0 ; i < myArray.length ; i++) {
lastElement.push(_.last(myArray[i]));
}
使用以下代码:-
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
lastElement = _.map(myArray, _.last);
console.log(lastElement)
// **Result is lastElement = [5, 77, 2];**
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.5/lodash.min.js"></script>
你可以简单地使用 Array.from
:
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
var res = Array.from(myArray, x => x[x.length - 1]);
console.log(res);
这里尚未回答的另一种可能性是 Array#reduce
:
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
var res = myArray.reduce((acc, curr) => acc.concat(curr[curr.length - 1]),[]);
console.log(res);