将数组调用到新数组中以角度

时间:2015-10-12 15:23:16

标签: javascript arrays angularjs dictionary filter

我有一个数组,我使用map方法从该数组中过滤结果并输出新数组,然后我可以将其调用到打印函数中。问题是,我无法获取新数组以输出已过滤的项目,并且它会将原始数组中的值多次重复到控制台中。我也无法将新数组调用到print函数中。

我的目标是使用第一个数组来提取相关商店,然后第二个数组将在视图中使用角度过滤器直接过滤。应用该过滤器后,我希望能够调用第二个数组的过滤数据进行打印。

非常感谢任何想法或方向。

代码:

printStoreList = function () {
    var storeDetail = function (store) {
        var result;

        {
            result = [];
            result.push(store.StoreName);
            result.push(store.Address);
            result.push(store.Phone);
            result.push(store.Zip);
            result.push(store.Is24Hour);
        }

        result.map(function(storeList){
            console.log(result); //This outputs duplicates of each array from above
            return {
                storeZip: storeList.Zip,
                storeName: storeList.StoreName,
                storeAddress: storeList.Address,
                storePhone: storeList.Phone
            };
        });

        return result;//This returns original array
    };

在第二个数组上,我希望能够使用类似于以下代码的东西将过滤后的数据传递给print函数:

if ((store.StoreName.indexOf($scope.query) >=0) || $scope.query === undefined ){(Second_Array)};

我可以在第一个阵列上执行过滤器,并且所有过滤器都按计划运行,但我不想改变第一个阵列。我希望保留该数组的输出,返回所有内容,从该数组创建第二个数组并过滤该数组以返回打印函数的值。

2 个答案:

答案 0 :(得分:0)

每次map函数迭代时,您的console.log语句都会打印结果数组。 我不确定你想要完成什么。

console.log(storeList);

将打印每个项目。

答案 1 :(得分:0)

使用来自@ F.P的建议我能够在原始函数之外创建新数组,其中我执行.filter方法和if语句来过滤indexOf $ scope.query然后.push到结果。效果很好。