Javascript - 使用reduce方法翻转一个数组

4

标题已经基本说明了问题。我已经想了几个办法,但似乎都行不通——即使阅读文档和示例后,我也无法理解reduce函数需要什么参数。

我应该将一个数组作为参数,并使用reduce来返回该数组的反转形式。


2
Array#reverse() 函数有什么问题? - Rayon
1
array.reverse()有什么问题? - BrTkCa
1
你到底为什么不直接使用 .reverse() 方法呢?如果需要复制,可以与 .slice() 结合使用。 - Alexander O'Mara
3
他们的问题措辞似乎暗示这是某种任务/挑战/代码高尔夫。 - Joe Clay
1
array.reduce((v,a)=>{v.unshift(a);return v;}, []) - 但是就像大家所说的那样,array.reverse 已经可以实现这个功能了。 - somethinghere
显示剩余4条评论
5个回答

11

2
您可以简单地按照以下步骤操作:

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);


2
你可以这样做:
array.reduce((v,a) => { v.unshift(a); return v; }, []);

将它添加到结果数组的前面会减小数组并将最后一个项目留在前面。但是就像每个人都提到的那样,数组已经有了处理这个问题的内置方法:Array.reverse


1

0
var reverseArray = function (arr) {
  return list.reduce(function (list, current) {
    list.unshift(current);
    return list;
  }, []);
};

console.log(reverseArray([1,2,3,4]));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接