标题已经基本说明了问题。我已经想了几个办法,但似乎都行不通——即使阅读文档和示例后,我也无法理解reduce函数需要什么参数。
我应该将一个数组作为参数,并使用reduce来返回该数组的反转形式。
标题已经基本说明了问题。我已经想了几个办法,但似乎都行不通——即使阅读文档和示例后,我也无法理解reduce函数需要什么参数。
我应该将一个数组作为参数,并使用reduce来返回该数组的反转形式。
您可以使用Array.prototype.concat():
[1, 2, 3].reduce((a, b) => [b].concat(a), [])
或使用展开语法:
[1, 2, 3].reduce((a, b) => [b, ...a], [])
然而,已经存在一种反转数组的方法 - Array.prototype.reverse()。
var arr = [1,2,3,4,5],
brr = arr.reduce((p,c) => [c].concat(p));
console.log(brr);
...或者另外一种方式
var arr = [1,2,3,[4],5],
brr = arr.reduce((p,c,i) => i-1 ? [c,...p] : [c,p]);
console.log(brr);
array.reduce((v,a) => { v.unshift(a); return v; }, []);
将它添加到结果数组的前面会减小数组并将最后一个项目留在前面。但是就像每个人都提到的那样,数组已经有了处理这个问题的内置方法:Array.reverse
。
a.reduceRight((acc, cur) => { return acc.concat(cur) }, [])
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight
var reverseArray = function (arr) {
return list.reduce(function (list, current) {
list.unshift(current);
return list;
}, []);
};
console.log(reverseArray([1,2,3,4]));
Array#reverse()
函数有什么问题? - Rayonarray.reverse()
有什么问题? - BrTkCa.reverse()
方法呢?如果需要复制,可以与.slice()
结合使用。 - Alexander O'Maraarray.reduce((v,a)=>{v.unshift(a);return v;}, [])
- 但是就像大家所说的那样,array.reverse
已经可以实现这个功能了。 - somethinghere