从选中的项目数组中删除特定的 id
remove specific id from array of checked items
我有一个 list/array 的运动,默认情况下所有运动都带有 checked = true
,在下面的函数中你可以看到这一行 intersectedSports = _.intersection(sportIds, sportChecked.sport);
其中 sportIds
是运动 ID 的完整列表和 sportChecked.sport
是带有 checked = false
的运动,这是用户未选中的运动。
记住:默认情况下所有运动都是checked = true
。
这是一个包含 30 个项目的数组,每个项目都有一个唯一的 id
,正如我提到的所有运动项目都是 checked = true
,但我需要 id: 10
是 [=默认为 15=]。
在你看到的所有这些代码的背后,已经有一个结构将用户 checked = false
的项目保存在数据库中,这就是你在这里看到这一行的原因 sport.checked = !_.includes(intersectedSports, sport.id);
.
所以,为了做我想做的事,我的猜测:我需要把 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
你可以把逻辑简化成这样:
// 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);
});
我有一个 list/array 的运动,默认情况下所有运动都带有 checked = true
,在下面的函数中你可以看到这一行 intersectedSports = _.intersection(sportIds, sportChecked.sport);
其中 sportIds
是运动 ID 的完整列表和 sportChecked.sport
是带有 checked = false
的运动,这是用户未选中的运动。
记住:默认情况下所有运动都是checked = true
。
这是一个包含 30 个项目的数组,每个项目都有一个唯一的 id
,正如我提到的所有运动项目都是 checked = true
,但我需要 id: 10
是 [=默认为 15=]。
在你看到的所有这些代码的背后,已经有一个结构将用户 checked = false
的项目保存在数据库中,这就是你在这里看到这一行的原因 sport.checked = !_.includes(intersectedSports, sport.id);
.
所以,为了做我想做的事,我的猜测:我需要把 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
你可以把逻辑简化成这样:
// 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);
});