按数组过滤对象

时间:2020-04-27 09:44:50

标签: arrays angularjs

我有一个来自服务的对象数据,我想根据键值过滤掉一些项目,它不仅是一个项目,还是要删除的多个项目;

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'     
}];

1 个答案:

答案 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无效,我已在答案中对其进行了修正。