我有几个数组,其中包含来自简单表单的存储信息
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很陌生,可能是我在思考问题而且是正确地盯着我的答案,但我真的可以在这里使用一些帮助。 万分感谢!
答案 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]);
答案 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.js(zip,map和object)的一个班轮:
var people = _.map(_.zip(names, lasts, ages), function(p) { return _.object(['name','last','age'], p); });