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

Javascript 如何从数组中排除特定id?,javascript,arrays,underscore.js,lodash,Javascript,Arrays,Underscore.js,Lodash,我有一个带有运动名称的数组,可以选择选中和取消选中它们 选中的项=false将保存在数据库中。默认情况下,所有项目都在checked=true中,但我想排除数组中的一个项目,并将其改为checked=false 首先,数组如下所示 [ { "id": 26, "name": "LIVE Betting", "priority": 0 }, { "id": 8, "name": "NBA", "priority": 1 }, {

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

选中的
项=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;
     });
    }
 });
它返回这个对象

{
  "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=9
设置为
checked=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;
 }

。.findWhere(sports,{id:9}).checked=false
?@Malk我怎样才能在我的代码中包含它?我已经试过了,但是不起作用。你正在创建一个带有复选框的运动列表。您希望列表显示NHL(id:9)已选中,但不将其包含为未选中?这不是很出人意料的行为吗?也许你应该先不选中它?@Malk一旦你登录,列表中的所有元素默认都被选中=true,这是正确的,但是我想在默认情况下将(id:9)设置为未选中。HTML是如何生成的?