我有一个体育列表/数组,默认情况下所有体育都在checked = true
,在下面的函数中,您可以看到此行intersectedSports = _.intersection(sportIds, sportChecked.sport);
,其中sportIds
是完整列表sports id和sportChecked.sport
是checked = false
的运动,这是用户取消选中的运动。
请记住:默认情况下,所有运动都是checked = true
。
这是一个包含30个项目的数组,每个项目都有一个唯一的id
,正如我提到的所有体育项目都是checked = true
,但我需要id: 10
为checked = false
默认情况下。
在您看到的所有这些代码的后面,已经有一个构造可以在数据库中保存用户checked = false
的项目,这就是您在此处看到此行sport.checked = !_.includes(intersectedSports, sport.id);
的原因。
所以,为了做我想做的事,MY GUESS:我需要将id: 10
与checked=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
答案 0 :(得分:1)
您可以将逻辑简化为以下内容:
// 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);
});