【问题标题】:COMBINE TWO ARRAYS ONE AS KEY AND OTHER AS VALUE IN ANGULAR JS在 Angular JS 中组合两个数组,一个作为键,另一个作为值
【发布时间】:2016-05-30 11:07:35
【问题描述】:

我有两个数组。

dat=['name','value','sub','mark']

dat1=[['mmm','lll','jjj','99'],['ccc','ccc','vvv','55']];

我需要这样的

 $scope.alldata = [{name : mmm, value : lll, sub:jjj, mark :99}, {name : ccc, value : ccc, sub:vvv, mark :55}]

在 php 中我们可以使用 array_combine 来实现。 但我需要它在 Angular js 中。 请帮帮我..

【问题讨论】:

  • for (i=0; i<key.length; i++) new_array[keys[i]] = values[i]
  • 能否请您扩展此代码.. 我尝试过类似的,.. 但我得到了一些错误..

标签: javascript php angularjs


【解决方案1】:

您可以使用Array#forEach() 和一个对象来填充结果。

var dat = ['name', 'value', 'sub', 'mark'],
    dat1 = [['mmm', 'lll', 'jjj', '99'], ['ccc', 'ccc', 'vvv', '55']],
    result = dat1.map(function (a) {
        var o = {};
        dat.forEach(function (k, i) {
            o[k] = a[i];
        })
        return o;
    });

console.log(result);

【讨论】:

    【解决方案2】:

    Array#map的回调中使用Array#reduce

    var dat = ['name', 'value', 'sub', 'mark'],
      dat1 = [
        ['mmm', 'lll', 'jjj', '99'],
        ['ccc', 'ccc', 'vvv', '55']
      ],
      op = dat1.map(function(item) {
        return item.reduce(function(a, b, index) {
          a[dat[index]] = item[index];
          return a;
        }, {})
      });
    console.log(op);

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-06-08
      • 1970-01-01
      • 2019-06-17
      • 1970-01-01
      • 1970-01-01
      • 2012-12-02
      • 2022-01-10
      相关资源
      最近更新 更多