Javascript 基于白名单ID数组筛选响应对象
如何基于白名单ID数组过滤响应对象 我有一个工作版本,但我不喜欢这里嵌套的Javascript 基于白名单ID数组筛选响应对象,javascript,angularjs,performance,refactoring,Javascript,Angularjs,Performance,Refactoring,如何基于白名单ID数组过滤响应对象 我有一个工作版本,但我不喜欢这里嵌套的forEach,我想知道是否有办法改进它 function WhitelistCtrl($scope) { var visible = []; var whitelist = [123, 456]; // items to be visible var response = [{ id: 123, name: 'my object #1' }, {
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可供使用:我不太熟悉英语foreach,但您可以使用本机javascript
过滤器实现这一点,如下面所示
visible = response.filter(function(item){
return (whitelist.indexOf(item.id) > -1);
})
注意:-IE8不支持.filter
我不太熟悉英语foreach
,但您可以使用本机javascriptfilter
实现这一点,如下图所示
visible = response.filter(function(item){
return (whitelist.indexOf(item.id) > -1);
})
注意:-IE8不支持.filter