javascript 根据属性值从数组中删除所有对象

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 匹配项?

Bar*_*uch 5

为什么不使用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

编辑以匹配评论。