我有两个数组。
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来完成它。 但我需要角度js。 请帮帮我..
答案 0 :(得分:3)
您可以使用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);
答案 1 :(得分:0)
在
的回调中使用Array#reduce
Array#map
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);