【问题标题】:how to map tow js lists to one list of pairs?如何将两个 json 列表映射到一个对列表?
【发布时间】:2018-05-16 11:37:13
【问题描述】:

我有两个长度相同的列表

我想用angular js创建一个重复的ui表。

 <tr ng-repeat="pair in pairs ..>

[1,2,3,4][a,b,c,d] 会是

表:

1 row: 1 a

2 row: 2 b

3 row: 3 c

4 row: 4 d

我该怎么做?

加入两个列表,然后以角度重复?还是做一些重复?

【问题讨论】:

  • 请详细说明您的问题。给定这 2 个数组,你想要的输出是什么?
  • 抱歉忘记了。已添加
  • 这些列表的长度是否总是相同的@EladBenda?
  • 是的。我是这样设置的

标签: javascript arrays angularjs


【解决方案1】:

最好的方法是将两个数组合并为一个,例如:

var $scope.pairs = [] ;

for (var i = 0 ; i < Array_1.length ; i++) {
    $scope.pairs.push( {number: Array_1[i] ,
                        letter: Array_2[i]  } ;
}

和你的 html:

<tr ng-repeat="pair in pairs>
   <td>
      {{pair.number}} - {{pair.letter}}
   </tr>
</tr>

【讨论】:

    【解决方案2】:
    1. list1 上使用ng-repeat
    2. 使用表达式 ({{}}) 打印其元素
    3. 使用$index作为索引从另一个数组中获取值

    你就是这样做的

    angular.module('app',[]).controller('ctrl', function($scope){
    $scope.list1 = [1,2,3,4];
    $scope.list2 = ["a","b","c","d"];
    
    })
    <script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.9/angular.min.js"></script>
    <div ng-app="app" ng-controller="ctrl">
        <div ng-repeat="list in list1">
           {{list}}  row : {{list}}  {{list2[$index]}}
        </div>
    </div>

    【讨论】:

      【解决方案3】:

      您可以使用迭代器中的 '$index' 从另一个数组中获取值

      //controller
      $scope.pairs = [1, 2, 3];
      $scope.otherArray = ['a', 'b', 'c'];
      //template
      <tr ng-repeat="pair in pairs">
         <td>{{ pair }}</td>
         <td>{{ otherArray[$index] }}</td>
      </tr>
      

      这将适用于具有相同长度的数组(这是您必须假设的)。

      【讨论】:

        猜你喜欢
        • 2010-09-19
        • 1970-01-01
        • 1970-01-01
        • 2021-05-14
        • 2018-06-09
        • 1970-01-01
        • 2020-10-12
        • 2012-08-16
        • 1970-01-01
        相关资源
        最近更新 更多