我有一个数组,我使用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)};
我可以在第一个阵列上执行过滤器,并且所有过滤器都按计划运行,但我不想改变第一个阵列。我希望保留该数组的输出,返回所有内容,从该数组创建第二个数组并过滤该数组以返回打印函数的值。
答案 0 :(得分:0)
每次map函数迭代时,您的console.log语句都会打印结果数组。 我不确定你想要完成什么。
console.log(storeList);
将打印每个项目。
答案 1 :(得分:0)
使用来自@ F.P的建议我能够在原始函数之外创建新数组,其中我执行.filter方法和if语句来过滤indexOf $ scope.query然后.push到结果。效果很好。