将javascript中的数组组合成一个哈希数组,其中一个数组是所有的键,其余的是值
我有两个数组,看起来如下所示:将javascript中的数组组合成一个哈希数组,其中一个数组是所有的键,其余的是值,javascript,underscore.js,Javascript,Underscore.js,我有两个数组,看起来如下所示: var foo=['id','first','last'] var student1=['1','sam','smith'] var student2=['2','jon','murphy'] 是否有一种有效的工具,可以使用类似underline.js或vanillajavascript的库,使您能够将这三个数组转换为如下所示的对象: var finalObj=[ {'id'=>1',first'=>sam',last'=>smith'}, {'id'=>2,'f
var foo=['id','first','last']代码>
var student1=['1','sam','smith']代码>
var student2=['2','jon','murphy']代码>
是否有一种有效的工具,可以使用类似underline.js
或vanilla
javascript的库,使您能够将这三个数组转换为如下所示的对象:
var finalObj=[
{'id'=>1',first'=>sam',last'=>smith'},
{'id'=>2,'first'=>'jon','last'=>'murphy'}
];代码>假设数组的顺序总是重要的(它总是ID、第一个、最后一个)-您可以执行以下操作:
var people = [student1, student2]; //create 2d array
var finalObj = people.reduce(function(final, person) {
var obj = {};
obj[foo[0]] = person[0]
obj[foo[1]] = person[1]
obj[foo[2]] = person[2]
final.push(obj);
return final;
}, []);
//[Objectfirst: "sam"id: "1"last: "smith"__proto__: Object, Objectfirst: "jon"id: "2"last: "murphy"__proto__: Object]
下划线可能有帮助,例如:
_.map( [student1, student2], function(arr) {
return _.object(foo, arr);
})
纯Javascript解决方案
var foo=['id','first','last'],
学生1=['1','sam','smith',],
学生2=['2','jon','murphy'],
结果=[student1,student2]。映射(函数(a){
var o={};
foo.forEach(函数(k,i){
o[k]=a[i];
});
返回o;
});
控制台日志(结果)代码>