运行此代码时,我得到“数组”未定义的错误。在我的解决方案中,我需要使用map()来反转数组。
var names = ["Lars", "Jan", "Peter","Bo", "Frederik","Anna"];
var newArray = array.slice(0).reverse().map(function(name){
return name;
});
console.log(backwards(newArray));
答案 0 :(得分:4)
您可以使用计算出的索引来映射项目。
var names = ["Lars", "Jan", "Peter", "Bo", "Frederik", "Anna"],
reversed = names.map((_, i, a) => a[a.length - i - 1]);
console.log(reversed);
答案 1 :(得分:3)
您必须提供数组names
而不是使用未定义的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用作迭代器,例如{{3 }}回答了她。
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]))
答案 2 :(得分:3)
嗯,使用地图没有意义,可以通过这种方式简单地完成
var newArray = names.reverse();