Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 基于白名单ID数组筛选响应对象_Javascript_Angularjs_Performance_Refactoring - Fatal编程技术网

Javascript 基于白名单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' }, {

如何基于白名单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可供使用:

我不太熟悉英语foreach,但您可以使用本机javascript
过滤器实现这一点,如下面所示

visible = response.filter(function(item){
    return (whitelist.indexOf(item.id) > -1);
})


注意:-IE8不支持
.filter
我不太熟悉
英语foreach
,但您可以使用本机javascript
filter
实现这一点,如下图所示

visible = response.filter(function(item){
    return (whitelist.indexOf(item.id) > -1);
})

注意:-IE8不支持
.filter