我知道对于一个数组,它可以使用下划线的last
函数,所以在这个数组的情况下它将是:
myArray = [32, 1, 8, 31];
lastElement = _.last(myArray);
问题在于存在这样的矩阵:
myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
,想要的结果是
lastElement = [5, 77, 2];
有什么建议吗?
答案 0 :(得分:2)
使用map
和slice
(赢得原始数组的变异)
[[1, 3, 5], [55, 66, 77], [0, 1, 2]].map( s => s.slice(-1)[0] );
答案 1 :(得分:2)
你可以做到
var lastElement = myArray.map(_.last);
答案 2 :(得分:1)
var lastElement = myArray.map((x) => {
return _.last(x);
});
答案 3 :(得分:1)
或者您也可以使用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 );

答案 4 :(得分:1)
检查一下。使用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)
答案 5 :(得分:1)
您只需使用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);

答案 6 :(得分:0)
您可以使用array.prototype.map
将每个子数组转换为其中的最后一个元素。如果您不想改变array.prototype.pop
,则可以使用arr[arr.length - 1]
或myArray
获取最后一个元素:
var myArray = [[1, 3, 5], [55, 66, 77], [0, 1, 2]];
var lastElements = myArray.map(arr => arr.pop());
console.log(lastElements);

答案 7 :(得分:0)
也许用for循环遍历它们。
lastElement = [];
for (var i = 0 ; i < myArray.length ; i++) {
lastElement.push(_.last(myArray[i]));
}
答案 8 :(得分:0)
使用以下代码: -
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>