为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

慕桂英3389331 2019-07-19 18:30:06
基于对象属性删除数组元素我有一个类似于这样的对象数组:var myArray = [     {field: 'id', operator: 'eq', value: id},      {field: 'cStatus', operator: 'eq', value: cStatus},      {field: 'money', operator: 'eq', value: money}];如何根据其属性删除特定的属性?例如,如何删除以“Money”作为字段属性的数组对象?
查看完整描述

3 回答

?
holdtom

TA贡献1805条经验 获得超10个赞

一种可能性是:

myArray = myArray.filter(function( obj ) {
    return obj.field !== 'money';});

请注意filter创建一个新数组。引用原始数组的任何其他变量都不会得到筛选过的数据,尽管您更新了原始变量。myArray新的推荐信。小心使用。


查看完整回答
反对 回复 2019-07-19
?
料青山看我应如是

TA贡献1772条经验 获得超7个赞

遍历数组,并且splice找出你不想要的。为了便于使用,可以向后迭代,这样就不必考虑数组的活动性质:

for (var i = myArray.length - 1; i >= 0; --i) {
    if (myArray[i].field == "money") {
        myArray.splice(i,1);
    }}


查看完整回答
反对 回复 2019-07-19
?
慕工程0101907

TA贡献1887条经验 获得超5个赞

你可以用房客的查找索引获取特定元素的索引,然后使用它进行拼接。

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);


查看完整回答
反对 回复 2019-07-19
  • 3 回答
  • 0 关注
  • 670 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信