从选中的项目数组中删除特定 ID

remove specific id from array of checked items

本文关键字:删除 数组 ID 项目数 项目      更新时间:2023-09-26

我有一个运动列表/数组,默认情况下,它们都带有checked = true,在下面的函数中,您可以看到这一行intersectedSports = _.intersection(sportIds, sportChecked.sport);其中sportIds是体育ID的完整列表,sportChecked.sport是带有checked = false的运动,这是用户取消选中的运动。

请记住:默认情况下,所有运动都是checked = true的。

这是一个包含 30 个项目的数组,每个项目都有一个独特的id,正如我提到的,所有的运动都是checked = true的,但我需要默认id: 10 checked = false

在你看到的所有这些代码背后,已经有一个结构可以将用户checked = false的项目保存在数据库中,这就是为什么你在这里看到这一行sport.checked = !_.includes(intersectedSports, sport.id);

所以,为了做我想做的事,我的猜测:我需要把id: 10checked=false放在我上面提到的var = intersectedSports中,除非你对我有更好的建议......那么,你推荐我的朋友什么?

  var sportIds = _.pluck(sports, 'id'),
      intersectedSports = _.intersection(sportIds, sportChecked.sport);
  if (sports.length) {
    sports = _.map(sports, function(sport) {
      sport.checked = !_.includes(intersectedSports, sport.id);
      return sport;
    });
  }

以防万一:我正在使用 Lodash 和 Angular

您可以将逻辑简化为如下所示:

     // build a list of the sports that should be unchecked
     var unchecked = sportChecked.sport.concat(10);
     // add a checked property to each sport
     _.each(sports, function(sport){
        sport.checked = !_.contains(unchecked, sport.id);
     });