基于对象属性删除数组元素

基于对象属性删除数组元素

我有一个类似于这样的对象数组:

var myArray = [
    {field: 'id', operator: 'eq', value: id}, 
    {field: 'cStatus', operator: 'eq', value: cStatus}, 
    {field: 'money', operator: 'eq', value: money}];

如何根据其属性删除特定的属性?

例如,如何删除以“Money”作为字段属性的数组对象?


慕桂英3389331
浏览 674回答 3
3回答

holdtom

一种可能性是:myArray = myArray.filter(function( obj ) {     return obj.field !== 'money';});请注意filter创建一个新数组。引用原始数组的任何其他变量都不会得到筛选过的数据,尽管您更新了原始变量。myArray新的推荐信。小心使用。

料青山看我应如是

遍历数组,并且splice找出你不想要的。为了便于使用,可以向后迭代,这样就不必考虑数组的活动性质:for (var i = myArray.length - 1; i >= 0; --i) {     if (myArray[i].field == "money") {         myArray.splice(i,1);     }}

慕工程0101907

你可以用房客的查找索引获取特定元素的索引,然后使用它进行拼接。myArray.splice(_.findIndex(myArray, function(item) {     return item.value === 'money';}), 1);更新你也可以使用es6。findIndex()findIndex()方法返回数组中满足所提供的测试函数的第一个元素的索引。否则将返回-1。myArray.splice(myArray.findIndex(myArray, function(item) {     return item.value === 'money';}), 1);
打开App,查看更多内容
随时随地看视频慕课网APP