var a = [1, 5, 7, 3];

console.log(DiffTheArray(a));


使用[4, 2, -4]的预期结果(即原始数组的每两个元素之间的差异),如何最简洁地实现DiffTheArray

我希望使用slices(a.slice(1) - a.slice(0,-1))来实现它,但是在JS中似乎没有一种从另一个数组中减去一个数组的内置方法。

最佳答案

您还可以只使用常规的reduce函数:



function diffTheArray(arr) {
  let diff = [];
  arr.reduce((a, b) => {
    diff.push(b - a);
    return b;
  });
  return diff;
}

var a = [1, 5, 7, 3];
console.log(diffTheArray(a));





如果使用comma operator,则可以将返回值显示在同一行上,并利用es6的较轻语法:



function diffTheArray(arr) {
  let diff = [];
  arr.reduce((a, b) => (diff.push(b - a), b));
  return diff;
}

console.log(diffTheArray([1, 5, 7, 3]));

08-19 02:20