定义 JavaScript 对象文字,以便数组中的所有对象都存在属性?
Define JavaScript object literal so that the properties exists for all objects in an array?
我用默认值定义了一个 JavaScript 对象文字,以便我的模板稍后可以访问它们:
self.emails = [{
address: "",
validation: {
warning: false,
message: "",
}
}];
这适用于 self.emails[0]
,但我还需要存在 self.emails[1]
到 self.emails[4]
的属性。有没有比键入更好的方法来完成此操作:
self.emails = [{
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
}];
使用简单的 for 循环:
self.emails = []
for (let i = 0; i < 5; i++) {
self.emails.push({
address: "",
validation: {
warning: false,
message: "",
}
})
}
我会按照以下方式完成这项工作;
var selfEmails = [{
address: "",
validation: {
warning: false,
message: "",
}
}],
longSelfEmails = Array(...Array(5)).map(o => { o = Object.assign({},(selfEmails[0]));
o.validation = Object.assign({},o.validation);
return o;
}),
modified = longSelfEmails.map((o,i) => {o.validation.message = i;
o.address = "addr_0"+i;
return o;
});
console.log(modified);
现在它们都是一个单独的对象。
我用默认值定义了一个 JavaScript 对象文字,以便我的模板稍后可以访问它们:
self.emails = [{
address: "",
validation: {
warning: false,
message: "",
}
}];
这适用于 self.emails[0]
,但我还需要存在 self.emails[1]
到 self.emails[4]
的属性。有没有比键入更好的方法来完成此操作:
self.emails = [{
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
},
address: "",
validation: {
warning: false,
message: "",
}
}];
使用简单的 for 循环:
self.emails = []
for (let i = 0; i < 5; i++) {
self.emails.push({
address: "",
validation: {
warning: false,
message: "",
}
})
}
我会按照以下方式完成这项工作;
var selfEmails = [{
address: "",
validation: {
warning: false,
message: "",
}
}],
longSelfEmails = Array(...Array(5)).map(o => { o = Object.assign({},(selfEmails[0]));
o.validation = Object.assign({},o.validation);
return o;
}),
modified = longSelfEmails.map((o,i) => {o.validation.message = i;
o.address = "addr_0"+i;
return o;
});
console.log(modified);
现在它们都是一个单独的对象。