温馨提示:本文翻译自stackoverflow.com,查看原文请点击:其他 - In JavaScript how do I create a list of differences of array elements elegantly?
arrays ecmascript-6 javascript functional-programming

其他 - 在JavaScript中,如何优雅地创建数组元素的差异列表?

发布于 2020-03-27 11:57:09

我有一个数字列表,比如说numbers = [3,7,9,10],我想有一个包含相邻元素之间差异的列表-在给定的情况下,该元素必须少一个 diffs = [4,2,1]

当然,我可以创建一个新列表,遍历输入列表并手动编译结果。

我正在寻找一种优雅/功能(更不用说pythonic)的方式来做到这一点。在Python中,您将为此编写[j-i for i, j in zip(t[:-1], t[1:])]或使用numpy

reduce()JavaScript中也有一个/ list理解方法吗?

查看更多

查看更多

提问者
frans
被浏览
64
Nina Scholz 2019-07-03 01:40

您可以切片并映射差异。

var numbers = [3, 7, 9, 10],
    result = numbers.slice(1).map((v, i) => v - numbers[i]);

console.log(result);

反向方法,随后进行切片。

var numbers = [3, 7, 9, 10],
    result = numbers.map((b, i, { [i - 1]: a }) => b - a).slice(1);

console.log(result);