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

如何删除与countries数组重复元素下标对应的costs数组元素并保留数组长度

实现方案

你可以通过记录首次出现的国家,对应清空后续重复国家位置的cost值实现,使用delete操作符可以在不改变数组长度的前提下清空指定下标元素:

var countries= ["Egypt","Egypt","Ghana","Nigeria","Brazil","Brazil","Brazil"]
var costs= [12,12,40,50,67,67,67]

// 存储已经出现过的国家
const existedCountries = new Set()

for (let i = 0; i < countries.length; i++) {
  const currentCountry = countries[i]
  if (existedCountries.has(currentCountry)) {
    // 重复出现的国家,清空对应位置cost
    delete costs[i]
  } else {
    // 首次出现的国家,加入记录保留cost
    existedCountries.add(currentCountry)
  }
}

效果验证

执行后countries数组完全保持不变,costs数组输出为[12, empty, 40, 50, 67, empty × 2],和你预期的[12,,40,50,67,,]完全一致,两个数组长度都保持原有的7位不变。

补充说明

如果你的业务场景需要空位置是undefined值而非空槽,把delete costs[i]替换为costs[i] = undefined即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 12:09:03