对 Sudhakar RS 的回答更简单的方法:
Usernames = ["user1", "user2", "user3"];
let persons = Usernames.map(name => {
let person = new Person();
person.setName(name);
return person;
});
这种方法允许进一步抽象和更实用的方法,同时保持不变性/稳定性。例如:
let Usernames = ["user1", "user2", "user3"];
let persons = Usernames.map(createPersonWithName);
function createPersonWithName(name) {
let person = new Person();
person.setName(name)
return person;
}
能够以这种方式隔离事物在其他方面可能非常有价值,无论您是在做对象数组还是密切相关的数组。老实说,对象数组是最好和最简单的。
Users = [{
name: 'user1',
data: 'value1'
}, {
name: 'user2',
data: 'value2'
}, {
name: 'user3',
data: 'value3'
}];
let persons = Users.map(createPerson);
function createPerson(user) {
let person = new Person();
person.setName(user.name);
person.setData(user.data);
return person;
}
虽然使用多个数组通常需要超出范围或花哨的其他技巧,但许多人认为这些技巧很臭。一个简单的方法:
let Usernames = ["user1", "user2", "user3"];
let Userdata = ["value1", "value2", "value3"];
let persons = Usernames.map(createPersonWithName);
function createPersonWithName(name, index) {
let person = new Person();
person.setName(name)
person.setData(Userdata[index]);
return person;
}