【问题标题】:using foreach and switch to loop through an array and return different values in angularjs使用 foreach 和 switch 循环遍历数组并在 angularjs 中返回不同的值
【发布时间】:2018-06-26 14:15:50
【问题描述】:

我有一个要循环遍历的对象数组。使用函数,我想给出对象的“类型”并为它们获取“值”。

例如:

数组:

$scope.data = [
  {
    "type": "CUSTOMER_NO",
    "value": "12345"
  },
  {
    "type": "NAME_LINE_1",
    "value": "CURTIS"
  },
  {
    "type": "ADDR_STREET1",
    "value": "500 RODEO DR"
  },
  {
    "type": "ADDR_STREET2",
    "value": "SUITE 102, MD 0750"
  },
  {
    "type": "ADDR_CITY",
    "value": "SAINT JOSEPH"
  },
  {
    "type": "ADDR_ZIP",
    "value": "22331"
  }
]

控制器(forloop):

$scope.formatAddress = function(addressInfo) {
        angular.forEach($scope.data, function(addressValue) {
         switch(addressValue.type) {
              case "CUSTOMER_NO":
                  address = addressValue.value;
                  break;
              case "ADDR_STREET1":
                  address = addressValue.value;
                  break;
              case "ADDR_STREET2":
                  address = addressValue.value;
                  break;
              case "NAME_LINE_1":
                  address = addressValue.value;
                  break;
              case "NAME_LINE_2":
                  address = addressValue.value;
                  break;
              case "ADDR_CITY":
                  address = addressValue.value;
                  break;
              case "ADDR_ZIP":
                  address = addressValue.value;
                  break;
              default:
                  address = addressValue.value;
         }
        });
        return address;
      };

我正在使用 forEachand 循环遍历数组,使用 switch 来检查哪个字符串被传递给了我想要的特定类型。

在 HTML 中:

 <div>{{vm.formatAddress("CUSTOMER_NO")}} - {{vm.formatAddress("NAME_LINE_1")}}</div>
 <div>{{vm.formatAddress("ADDR_STREET1")}} {{vm.formatAddress("ADDR_STREET2")}}</div>
 <div>{{vm.formatAddress("ADDR_CITY")}}, {{vm.formatAddress("CUSTOMER_NO")}} - {{vm.formatAddress("ADDR_ZIP")}}</div>

我目前得到的是....只是这样的客户编号...

12345 - 12345
12345 12345
12345, 12345 - 12345

我想找回什么……

12345 - CURTIS
500 RODEO DR, SAINT JOSEPH
SUITE 102, MD 0750
SAINT JOSEPH, 22331

编辑:

使用for循环解决了这个问题

【问题讨论】:

    标签: javascript angularjs loops foreach


    【解决方案1】:

    如果我正确理解您的问题,您可以将您的 $scope.formatAddress 替换为:

    $scope.formatAddress = function(addressInfo) {
      return data.find(x => x.type === addressInfo).value;
    };
    

    【讨论】:

      猜你喜欢
      • 2019-05-01
      • 2012-03-10
      • 2018-07-17
      • 2013-12-16
      • 1970-01-01
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 2013-11-05
      相关资源
      最近更新 更多