繁体   English   中英

Javascript - 使用reduce来反转数组

[英]Javascript - using reduce to reverse an array

标题差不多。 我有一些想法,但似乎都没有成功 - 即使在阅读了文档和示例之后,我似乎也无法理解 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()

你可以这样做:

array.reduce((v,a) => { v.unshift(a); return v; }, []);

简单地将它添加到结果数组(在前面)将减少数组并将最后一项留在前面。 但就像每个人提到的,数组已经有一个内置的方法来处理这个: Array.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);

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM