tee*_*tee 2 javascript arrays ecmascript-6
如何根据属性值从数组中删除所有对象?
function removeByKey(array, fieldName){
array.some(function(item, index) {
return (array[index].name === fieldName) ? !!(array.splice(index, 1)) : false;
});
return array;
}
const myarr = [
{
name: 'foo',
school: 'hoo'
},{
name: 'foo',
school: 'xooo'
},{
name: 'bar',
school: 'xooo'
}
];
console.log(removeByKey(myarr, 'foo'))
Run Code Online (Sandbox Code Playgroud)
在上面的代码中,它只是删除了其中一个对象。如何删除所有 if 匹配项?
为什么不使用filter
MDN?
const myarr = [
{
name: 'foo',
school: 'hoo'
},{
name: 'foo',
school: 'xooo'
},{
name: 'bar',
school: 'xooo'
}
];
const filteredArray = myarr.filter(obj => obj.name !== 'foo');
Run Code Online (Sandbox Code Playgroud)
示例:https: //repl.it/repls/SimultaneousSentimentalForms
编辑以匹配评论。