【问题标题】:angularjs looping logic, forEachangularjs循环逻辑,forEach
【发布时间】:2015-11-24 20:29:21
【问题描述】:

我有一个看起来像这样的对象。基本上我需要的是遍历 filterNameList 数组并提取属于 filterNameList 的每个对象中的第一个值,它始终是 [0] 值。将这些提取出来以显示在页面上时遇到了一些麻烦。

acceptableFlag: "True"
filterNameList: Array[5]
    0: Array[2]
        0: "Asia"
        1: 20000
    1: Array[2]
        0: "China"
        1: 20001
    2: Array[2]
        0: "Beijing"
        1: 50000
reportId: 48
reportName: "Multiple"

下面的函数会起作用吗?

function filterLabel(data){
    angular.forEach(data, function(obj, i){
        angular.forEach(obj, function(filterNameList, i){
            if (filterNameList.filterNameList == 20000){
                filterNameList.filterLabel = "Region"
            }
        })
    })
 };

【问题讨论】:

  • 你为什么使用 angular.forEach 而不是data.filterNameList.forEach(function(nameList, i) {})
  • 在代码的其他地方我都看到 angular.forEach 被使用,所以我也采用了它

标签: javascript angularjs loops foreach


【解决方案1】:

obj 也是一个数组。您要么必须嵌套循环,要么执行静态索引值。

if(obj[1] == 20000){
    obj.regionName = "Region"
}

【讨论】:

    【解决方案2】:

    将属性分配给 Array 对象并不是这样做的好方法。 你可以做类似的事情

    filterNameList.forEach(function(obj, i){
       if(obj[1] == 20000){
            obj.push("Region")
        }
       else if (obj[1] == 20001){
           obj.push('Country');
       }
       else if (obj[1] == 50000){
           obj.push('City');
       }
    
    });
    

    【讨论】:

    • 会是这样吗:function filterLabel(data.filterNameList){ filterNameList.forEach(function(obj, i){ if.... } }
    • 对..在此之后,您的子数组将包含每个 3 个项目
    • 我收到一个错误,说“不是函数/未定义”
    • 可能有错字或 filterNamesList 未定义
    • 好的,谢谢,我已经解决了,但我实际上编辑了上面的问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-03
    • 2015-07-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多