JavaScript如何计算数组元素与前一个相邻元素的差值
实现方法
你需要的是计算数组相邻元素的前后差值,最终得到的差值数组长度会比原数组少1(第一个元素没有前序相邻元素,无需计算)。
1. 基础for循环实现(最易理解,兼容性最好)
const array = [ 1633236300000, 1633244100000, 1633248000000, 1633252500000, 1633287600000, 1633291500000 ]; const diffResult = []; // 从下标为1的第二个元素开始遍历 for (let i = 1; i < array.length; i++) { // 用当前元素减去前一个元素得到差值,存入结果数组 diffResult.push(array[i] - array[i - 1]); } console.log(diffResult); // 输出结果:[7800000, 3900000, 4500000, 35100000, 3900000]
2. 简写实现(数组API写法更简洁)
使用slice+map组合,无需额外过滤无效值,性能更好:
const diffResult = array.slice(1).map((currentVal, index) => currentVal - array[index]);
补充说明
- 得到的差值单位和原数组一致,这里原数组是毫秒时间戳,所以差值单位也为毫秒,如果需要转换为秒/分钟等其他时间单位,除以对应倍率即可,比如转分钟的公式为:
差值 / 1000 / 60。
内容的提问来源于stack exchange,提问作者ufollettu
相关产品推荐
相关产品推荐

