Javascript - 使用reduce来反转数组

时间:2016-11-01 15:36:23

标签: javascript arrays reverse

几乎是标题。我有一些想法,但似乎没有一个想法 - 即使在阅读文档和示例之后,我似乎也无法理解reduce函数的确切含义是什么。

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

5 个答案:

答案 0 :(得分:7)

您可以使用Array.prototype.concat()

[1, 2, 3].reduce((a, b) => [b].concat(a), [])

spread syntax

[1, 2, 3].reduce((a, b) => [b, ...a], [])

但是已经存在反转数组的方法 - Array.prototype.reverse()

答案 1 :(得分:2)

你可以这样做:

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

只需将其添加到生成的数组(位于前面)将减少数组并将最后一项保留在前面。但是像所有人都提到的那样,数组已经有内置方法可以解决这个问题:Array.reverse

答案 2 :(得分:1)

你可以这样做;



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




答案 3 :(得分:0)

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

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

答案 4 :(得分:0)

       user_ID  request_time            diff
0   a11e41cdc2  2018-03-01 08:08:00     NaT
1   a11e41cdc2  2018-03-01 08:13:00     00:05:00
2   2791ec4485  2018-03-01 13:50:00     NaT
3   2791ec4485  2018-03-01 13:51:00     00:01:00
4   2791ec4485  2018-03-01 13:53:00     00:02:00
5   2791ec4485  2018-03-01 13:55:00     00:02:00
6   2791ec4485  2018-03-01 22:10:00     08:15:00
7   59f84cf342  2018-03-01 22:19:00     NaT
8   59f84cf342  2018-03-01 22:20:00     00:01:00

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/reduceRight