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

从数组列表中删除基于两个参数的对象

从数组列表中删除基于两个参数的对象

白衣非少年 2022-12-22 12:04:43
我想删除这个对象    {        "taskNo": 1,        "milestoneNo" : 1,    }从这整个阵列中,  "milestoneList" : [{    "milestoneTaskName" : {           "milestoneNo" : 1,        "taskName": "test",      },    "milestoneTask" : [    {        "taskNo": 1,        "milestoneNo" : 1,    },{        "taskNo": 2,        "milestoneNo" : 1,    }    ]},{    "milestoneTaskName" : {        "milestoneNo" : 2,        "taskName": "test",               },    "milestoneTask" : [    {          "taskNo": 1,       "milestoneNo" : 2,    },{        "taskNo": 2,        "milestoneNo" : 2,    }    ]}]我试过这样做,但没有用。我已经应用了两个条件作为回报,但它不返回实际输出。这里id是1,mileNo是1        milestoneList.map((obj)=>{     if(typeof obj.milestoneTask !== 'undefined' && obj.milestoneTask.length > 0){       obj.milestoneTask = obj.milestoneTask.filter(function(val) {          return val["taskNo"] !== id && val["milestoneNo"] !== mileNo;          });         }       })
查看完整描述

2 回答

?
富国沪深

TA贡献1790条经验 获得超9个赞

我想这就是你想要的比较语句

!(val["taskNo"] === id && val["milestoneNo"] === mileNo)

仅当 id 和 mileNo 都匹配时才会返回 false。如果 idmileNo 匹配,则返回 false 的语句。

const milestoneList = [{

    "milestoneTaskName": {

      "milestoneNo": 1,

      "taskName": "test",

    },

    "milestoneTask": [{

      "taskNo": 1,

      "milestoneNo": 1,

    }, {

      "taskNo": 2,

      "milestoneNo": 1,

    }]

  },

  {

    "milestoneTaskName": {

      "milestoneNo": 2,

      "taskName": "test",

    },

    "milestoneTask": [{

      "taskNo": 1,

      "milestoneNo": 2,

    }, {

      "taskNo": 2,

      "milestoneNo": 2,

    }]

  }

]


const id = 1;

const mileNo = 1;


milestoneList.map((obj) => {

  if (typeof obj.milestoneTask !== 'undefined' && obj.milestoneTask.length > 0) {

    obj.milestoneTask = obj.milestoneTask.filter(function(val) {

      return !(val["taskNo"] === id && val["milestoneNo"] === mileNo);

    });

  }

})


console.log(milestoneList)


查看完整回答
反对 回复 2022-12-22
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

您希望其中一个属性不同,而不是两者都不同。因此,应改用逻辑或运算符。

return val["taskNo"] !== id || val["milestoneNo"] !== mileNo;


查看完整回答
反对 回复 2022-12-22
  • 2 回答
  • 0 关注
  • 157 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号