You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

数组去重时如何同步删除另一关联数组对应索引的元素

实现方案

两个数组是索引一一对应的关系,不要单独对价格数组做去重操作,否则会丢失索引对应关系,正确做法是遍历过程中记录已出现的价格,仅保留价格首次出现位置对应的两个数组的元素即可。

代码示例(JavaScript)

// 原始输入数组
const dates = ['2022-06-27', '2022-07-02', '2022-07-03', '2022-07-04', '2022-07-05']
const prices = [3.79, 4.29, 4.29, 4.29, 4.36]

const existedPrices = new Set()
const resDates = []
const resPrices = []

prices.forEach((price, idx) => {
  if (!existedPrices.has(price)) {
    existedPrices.add(price)
    resDates.push(dates[idx])
    resPrices.push(price)
  }
})

// 输出结果和预期完全一致
// resDates: ['2022-06-27', '2022-07-02', '2022-07-05']
// resPrices: [3.79, 4.29, 4.36]

逻辑说明

  • 用Set存储已经遍历过的价格,查重的时间复杂度为O(1),比用数组存已出现价格再遍历查找效率高很多
  • 遍历价格数组时,每遇到一个没出现过的价格,就把当前价格、同索引的日期分别存入结果数组,同时把价格标记为已出现
  • 遇到已经存过的重复价格直接跳过,全程保持日期和价格的索引绑定关系,不会出现错配

如果你的需求是保留重复价格最后一次出现对应的日期,只需要从数组末尾倒序遍历,最后把得到的两个结果数组反转即可,核心查重逻辑不变。


内容的提问来源于stack exchange,提问作者sneaker

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 13:48:19