如何从数组中排除特定的 id?

How to exclude a specific id from an array?

我有一个包含运动名称的数组,可以选择选中和取消选中它们。

带有 checked = false 的项目正在保存在数据库中。默认情况下,所有项目都在 checked = true 中,但是,我想排除数组中的一项并将其放入 checked = false 中。

起初,数组看起来像这样

[
  {
    "id": 26,
    "name": "LIVE Betting",
    "priority": 0
  },
  {
    "id": 8,
    "name": "NBA",
    "priority": 1
  },
  {
    "id": 24,
    "name": "College Basketball",
    "priority": 2
  },
  {
    "id": 42,
    "name": "Women College Basketball",
    "priority": 3
  },
  {
    "id": 9,
    "name": "NHL",
    "priority": 4
  },
  {
    "id": 6,
    "name": "MLB",
    "priority": 5
  }
 ]

这是这里的函数

_this.getSportChecked(customer).then(function(sportChecked) {
    var sportIds = _.pluck(sports, 'id'),
        intersectedSports = _.intersection(sportIds, sportChecked.sport);
    if (sports.length) {
        //HERE I NEED TO EXCLUDE THE ID 9
        sports = _.map(sports, function(sport) {
          sport.checked = !_.includes(intersectedSports, sport.id);
          return sport;
     });
    }
 });

哪个returns这个对象

{
  "id": 26,
  "name": "LIVE Betting",
  "priority": 0,
  "checked": true
}
{
  "id": 8,
  "name": "NBA",
  "priority": 1,
  "checked": true
}
{
  "id": 24,
  "name": "College Basketball",
  "priority": 2,
  "checked": true
}
{
  "id": 42,
  "name": "Women College Basketball",
  "priority": 3,
  "checked": true
}
{
  "id": 9,
  "name": "NHL",
  "priority": 4,
  "checked": true
}
{
  "id": 6,
  "name": "MLB",
  "priority": 5,
  "checked": true
}

所以你可以看到所有这些项目默认情况下都是 checked = true,但我想默认设置 id = 9checked = false,直到用户将其切换为 true他想要的情况。

您对此有何建议?请阅读我的代码中的注释,有部分我需要排除它。

好吧,您可以简单地通过 id 找到该运动并手动取消选中它。

if (sports.length) {
    //HERE I NEED TO EXCLUDE THE ID 9
    sports = _.map(sports, function(sport) {
      sport.checked = !_.includes(intersectedSports, sport.id);
      // Special case for id 9
      if (sport.id === 9) {
        sport.checked = false;
      }
      return sport;
 }