Javascript 获取数组的每个子数组的最后一个元素

Javascript 获取数组的每个子数组的最后一个元素,javascript,arrays,underscore.js,Javascript,Arrays,Underscore.js,我知道对于一个数组,它可以使用下划线的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将每个子数组转换为其中的最后一个元素。如

我知道对于一个数组,它可以使用下划线的
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)使用
映射
切片
(不会改变原始数组)


或者您也可以使用ES6
map

让myArray=[[1,3,5]、[55,66,77]、[0,1,2];
让result=myArray.map(v=>v[v.length-1]);

控制台日志(结果)查看此项。使用map遍历数组并提取最后一个元素

不需要任何图书馆

让myArray=[[1,3,5]、[55,66,77]、[0,1,2];
让输出=[];
output=myArray.map(m=>m[m.length-1])
console.log(输出)
您只需

var lastElement = myArray.map(_.last);

也许用for循环遍历它们

lastElement = [];

for (var i = 0 ; i < myArray.length ; i++) {
    lastElement.push(_.last(myArray[i]));
}
lastElement=[];
对于(var i=0;i
使用以下代码:-

var myArray=[[1,3,5]、[55,66,77]、[0,1,2];
lastElement=\ u0.map(myArray,\ u0.last);
console.log(lastElement)
//**结果是lastElement=[5,77,2]**
您只需使用:

var myArray=[[1,3,5]、[55,66,77]、[0,1,2];
var res=Array.from(myArray,x=>x[x.length-1]);

控制台日志(res)
.pop()
将变异数组。最好使用
.slice().pop()
arr[arr.length-1]
这是
.map
的一个糟糕实现。请检查其他答案为什么这是一个糟糕的实现?你对你的陈述有任何参考资料吗?我现在没有任何参考资料,但我会尽力解释
.map
用于获取每个项目的一些变异/解析值。它返回
n
项,但带有特定值
.forEach
将循环并处理值,但不会返回任何内容。因此,如果您使用
.map
,但不返回值或不尊重/接受返回值,则本质上与
.forEach
相同。所有数组函数都是有原因的。是的,您可以从所有方法中实现相同的任务,但您应该将它们用于预期目的,否则您将扼杀它们的本质。
.last(u.zip(…myArray))
我添加了lodash的CDN链接,并将代码包装在代码段中(
编辑器中的图标)。如果不需要编辑,请还原更改。
var lastElement = myArray.map(_.last);
lastElement = [];

for (var i = 0 ; i < myArray.length ; i++) {
    lastElement.push(_.last(myArray[i]));
}