我有一个像这样的数组
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
还有其他方法可以更有效地完成这项工作吗?
答案 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);