获取数组中连续元素之间的差异(如R diff()函数)



在javascript中,有没有比下面更优雅的方法来映射[5,3,4,4,5][-2,1,0,1]的数组元素之间的差异——类似于R,在那里你可以很容易地获得数组元素x=c(5,3,4,4,5)diff(x)之间的差异,从而获得(-2,1,0,1)

let test = [5, 3, 4, 4, 5]
console.log(test.map((x, i) => {
if (i < test.length - 1) return test[i] - test[i + 1]
else return null
}).filter(x => x != null))

您可以从索引1对数组进行切片,并映射给定和切片数组的同一索引的delat。

const diff = array => array.slice(1).map((v, i) => v - array[i]);
console.log(diff([5, 3, 4, 4, 5])); // [-2, 1, 0, 1]

最新更新