从一个数组(键)生成对象数组另一个数组数组(值)

时间:2017-09-05 09:35:24

标签: javascript arrays javascript-objects

也许以前曾经问过这个问题,而且我也不知道如何寻找它,所以我提前报告我完全缺乏措辞技巧。所以,在这里。我在ECMA5中编程(因此没有可用的花哨的数组/对象方法)。我有一个数组,其中包含键,让我们说:

var keys = ["name", "age", "school"];

然后,包含值的数组数组:

var values = [["John John", 16, "Saints Hills High School"], ["Miranda Knobs", 12, "St Mary Junior High"], ["Patricia Lee", 13, "Milwakee High School"]];

我想创建一个对象数组。每个对象具有来自第一个数组的键和来自第二个数组的值,如下所示:

var result = [{name: "John John", age: 16, school: "Saints Hills High School"}, {name: "Miranda Knobs", age: 12, school: "St Mary Junior High"}, {name: "Patricia Lee", age: 13, school: "Milwakee High School"}];

我看到了一些带有2个数组的问题/解决方案,其中一个包含键和一个值,但我不知道如何为每个对象多次重复第一个数组。

1 个答案:

答案 0 :(得分:1)

您可以使用此代码:

var keys = ["name", "age", "school"];
var values = [["John John", 16, "Saints Hills High School"], ["Miranda Knobs", 12, "St Mary Junior High"], ["Patricia Lee", 13, "Milwakee High School"]];
var resultArray = [];
for(var i=0; i<values.length; i++){
  var obj = {};
  for(var j=0; j<keys.length; j++){
     obj[keys[j]] = values[i][j];
  }
   resultArray.push(obj);
}

console.log(resultArray);

这正是您想要实现的目标。