简体   繁体   English

组合两个数组,一个作为键,另一个作为值

[英]COMBINE TWO ARRAYS ONE AS KEY AND OTHER AS VALUE IN ANGULAR JS

I have two arrays. 我有两个数组。

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

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

I need an like this 我需要这样

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

In php we can do it with array_combine. 在php中,我们可以使用array_combine做到这一点。 But I need it in angular js. 但是我在angular js中需要它。 Please help me.. 请帮我..

You could use Array#forEach() and an object for populating the result. 您可以使用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); 

Use Array#reduce in the callback of Array#map 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); 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM