首页 > 解决方案 > 如何使用 map 反转数组?

问题描述

运行此代码时出现“数组”未定义的错误。在我的解决方案中,我需要使用 map() 来反转我的数组。

var names = ["Lars", "Jan", "Peter","Bo", "Frederik","Anna"];

 var newArray = array.slice(0).reverse().map(function(name){
        return name;
    });

console.log(backwards(newArray));

标签: javascript

解决方案


您必须提供数组names而不是 using array,这是未定义的

var names = ["Lars", "Jan", "Peter", "Bo", "Frederik", "Anna"]
var newArray = names.slice(0).reverse().map(function(name) {
  return name;
});
console.log(newArray)

在这种情况下,大多数功能也无济于事。你真的只需要names.reverse()评论中提到的。

如果您确实想使用map(),它有点复杂,并且不是用于反转的正确功能。


更新

如何将其转换为函数???

已经reverse是一个函数,但是如果您想使用 map 并使用 es6 样式约定创建一个新函数,(const foo = () => {}))您可以使用 map 作为迭​​代器,就像Nina Scholz在她的回答中所做的那样。

var names = ["Lars", "Jan", "Peter", "Bo", "Frederik", "Anna"]
const backwards = (arr) => arr.map((_, i) => arr[arr.length - i - 1]);

console.log(backwards(names))
console.log(backwards([0, 1, 2]))


推荐阅读