如何根据列入白名单的ID数组过滤响应对象?
我是一个有效的版本,但我不喜欢嵌套的forEach
,我想知道是否有办法改进它?!
function WhitelistCtrl($scope) {
var visible = [];
var whitelist = [123, 456]; // items to be visible
var response = [{
id: 123,
name: 'my object #1'
}, {
id: 456,
name: 'my object #2'
}, {
id: 789,
name: 'my object #3'
}];
angular.forEach(whitelist, function (id) {
angular.forEach(response, function (item) {
if (id === item.id) {
visible.push(item);
}
});
});
}
这是一个可以玩的JSFiddle:http://jsfiddle.net/gearsdigital/rv6vq2L7/
答案 0 :(得分:2)
我对Anglar ForEeach
不是很熟悉,但你可以使用本地javascript filter
来实现这一点,如下所述
visible = response.filter(function(item){
return (whitelist.indexOf(item.id) > -1);
})
NOT: - IE8不支持.filter
。