如何删除与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
相关产品推荐
相关产品推荐

