AngularJS foreach - 为未分配的值生成大量null

我有一个数组变量 viewedprofiles= []; 初始化 .

我将分配已查看到此 viewedprofiles 数组的配置文件 . 现在,如果我尝试显示它(通过将其分配给$ scope),我会为未分配或触摸的其他值获取NULL .

var viewedprofiles= [];               

    angular.forEach(profiles, function(value, key){         

        if(value.viewed== "yes") {
            viewedprofiles[value.id] = TRUE;
        }       

    });

viewedprofiles 的输出如下

[NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,TRUE]

Output explanation :

由于第9个id的配置文件 viewed 值为 yes ,因此输出在 viewedprofiles 数组的第9个元素处返回TRUE .

实际上没有错 .

但我想知道就上面的代码而言,第9个元素的id为TRUE . 如果id是一些大数字说15640怎么办?在 TRUE 之前会有15639 NULL 吗?我做错了什么或有其他方法可以解决这个问题吗?

回答(1)

2 years ago

我找到了答案 . 我试图做的事情在分配部分基本上是错误的 . 我应该推动元素而不是分配 .

以下工作 .

angular.forEach(profiles, function(value, key){         

    if(value.viewed== "yes") {
        viewedprofiles.push(value.id);
    }       

}, viewedprofiles);