【发布时间】:2020-02-12 21:45:38
【问题描述】:
我想在迭代中使用带有 if 条件的拼接方法删除数组中的某些元素。我执行以下操作:
var list = [{type:"product",name:"Product A"},{type:"product",name:"Product B"},{type:"service", name:"Service A"},{type:"service", name:"Service B"}]
list.forEach(function (item, index) {
if (item.type == 'service'){
list.splice(index, 1)
}
}
//result: list = list = [{type:"product",name:"Product A"},{type:"product",name:"Product B"},{type:"service", name:"Service A"}]
//expected: list = [{type:"product",name:"Product A"},{type:"product",name:"Product B"}]
我希望删除类型为“service”的两个元素,但只删除第一个元素。
【问题讨论】:
-
您的方法无效,因为当您到达第二次服务时,索引:3 不再存在于您的数组中,因为在您第一次拼接后,您的数组长度变为 3,因此最后一个索引为 2。
标签: javascript