我有一个来自服务的对象数据,我想根据键值过滤掉一些项目,它不仅是一个项目,还是要删除的多个项目;
var dataFromServce = [{
kod: 1000, teur: 'do0',
kod: 1001, teur: 'do1',
kod: 1002, teur: 'do2',
kod: 1003, teur: 'do3'
}];
var removeItems = [1001, 1002, 1003];
if (removeItems != "") {
// run thru dataFromServce loop
for (var i = 0; i < dataFromServce.length; i++) {
// if dataFromServce item match removeItems then remove it from dataFromServce
// TODO: to match every item in removeItems
if (dataFromServce[i].kod === removeItems[0]) {
dataFromServce.splice(i, 1);
i--;
}
}
这样,它只检查一项(removeItems [0])结果应该是
var dataFromServce = [{
kod: 1000, teur: 'do0'
}];
答案 0 :(得分:2)
您正在寻找过滤器并包含
const dataFromService = [{
kod: 1000,
teur: 'do0'
}, {
kod: 1001,
teur: 'do1'
}, {
kod: 1002,
teur: 'do2'
}, {
kod: 1003,
teur: 'do3'
}];
const removeItems = [1001, 1002, 1003];
const res = dataFromService.filter(({
kod
}) => !removeItems.includes(kod));
console.log(res);
您的问题中的代码显然是错误的,因为您的dataFromService无效,我已在答案中对其进行了修正。