从多个数组中创建一个对象

时间:2014-02-21 16:07:59

标签: javascript arrays object

我有几个数组,其中包含来自简单表单的存储信息

var name = [a, b, c, ...]; var last = [x, y, z, ...]; var age = [1, 2, 3];

现在的想法是,当某人新填充表单,并因此将新元素添加到数组时,会创建一个新对象来保存此人信息 像:

function Person(name,last,age){
this.name=name;
this.last=last;
this.age=age;
}

var object1 = new Person(name[1],last[1],age[1]);

显然我不想每次都手动创建一个新对象,所以我猜想必须用for循环来完成,但是如何为object(i)生成一个新名称呢?

我对javascript很陌生,可能是我在思考问题而且是正确地盯着我的答案,但我真的可以在这里使用一些帮助。 万分感谢!

3 个答案:

答案 0 :(得分:3)

这样的事情怎么样:

var len = Math.min(name.length, last.length, age.length),
    objects = new Array(len);
for (var i = 0; i < len; i++)
    objects[i] = new Person(name[i], last[i], age[i]);

Demonstration

答案 1 :(得分:0)

与p.s.w.g稍有不同的版本,无论如何都是好的,假设每个字段总是被填充(每个数组都有相同的大小)。

var persons = [];

for (var i = 0; i < names.length; i++)  
  persons.push(new Person(names[i], lasts[i], ages[i]));

答案 2 :(得分:0)

使用Underscore.jszipmapobject)的一个班轮:

var people = _.map(_.zip(names, lasts, ages), function(p) { return _.object(['name','last','age'], p); });