首页 > 解决方案 > javascript Get the difference between an element of an array and the previous one

问题描述

Assuming I have an array of milliseconds values like this:

   const array = [
     1633236300000,
     1633244100000,
     1633248000000,
     1633252500000,
     1633287600000,
     1633291500000
   ]

How can I get the difference between an element of an array and the previous one?

标签: javascriptarraysdifferencemilliseconds

解决方案


1)您可以使用旧式 for 循环,起始索引为1

const array = [
  1633236300000, 1633244100000, 1633248000000, 1633252500000, 1633287600000,
  1633291500000,
];

const result = [];
for (let i = 1; i < array.length; ++i) {
  result.push(array[i] - array[i - 1]);
}

console.log(result);

2)您也可以使用带切片的地图

const array = [
  1633236300000, 1633244100000, 1633248000000, 1633252500000, 1633287600000,
  1633291500000,
];

const result = array.map((n, i, src) => n - (src[i - 1] ?? 0)).slice(1);

console.log(result);

3)你也可以在这里使用reduce

const array = [
  1633236300000, 1633244100000, 1633248000000, 1633252500000, 1633287600000,
  1633291500000,
];

const result = array.reduce((acc, curr, i, src) => {
  if (i !== 0) acc.push(curr - src[i - 1]);
  return acc;
}, []);

console.log(result);


推荐阅读