从JavaScript数组中删除对象

时间:2018-06-05 07:46:48

标签: javascript arrays

我有一个像这样的数组

var items = [{id:'1',token:'jj'},{id:'2',token:'kk'}];

我想从数组中删除与id = 2

匹配的对象

这是我的解决方案

//find the corresponding object
let obj=items.find((item) => item.id=='2');
//loop through the original and delete

还有其他方法可以更有效地完成这项工作吗?

4 个答案:

答案 0 :(得分:0)

使用Array#filter功能从阵列中删除项目。它实际上返回一个新数组,其中包含与谓词对应的那些项。

let items = [{id:'1',token:'jj'},{id:'2',token:'kk'}];
let filtered = items.filter(item => item.id !== '2');

console.log(filtered);

用于从原始数组中删除

let items = [{id:'1',token:'jj'},{id:'2',token:'kk'}];
let index = items.findIndex(item => item.id === '2');

items.splice(index, 1);

console.log(items);

答案 1 :(得分:0)

我建议使用this.renderer2.setAttribute(this.progressBar.nativeElement, 'aria-valuenow', 'whatever value'); ,这不会改变现有数组的引用,只是删除了所需的元素。



splice




答案 2 :(得分:0)

您可以查看控制台:D

var items = [{id:'1',token:'jj'},{id:'2',token:'kk'}, {id:'4',token:'kk'}, {id:'2',token:'kl'}];
items.forEach(item =>{
 if(item['id'] == '2') items.splice(items.indexOf(item),1)
})

console.log(items)

答案 3 :(得分:0)

您也可以将splice()forEach()一起使用:



var items = [{id:'1',token:'jj'},{id:'2',token:'kk'}];
items.forEach((item, index) => {
   if(item.id === '2'){
     items.splice(index,1);
   }
});
console.log(items);