[英]adding more key value pair to an object javascript
我有一个接受 2 个值的方法
getCreateRequest = function (field, required) {
return {
additionalFields: [
{
field: field,
required: required
}
]
};
};
我需要将以下值传递给此方法
{ field: "PHONE", required: true },
{ field: "COUNTRY", required: true },
{ field: "MOBILE", required: true }
我写的方法如下:
let request = getCreateRequest ("PHONE", true);
request.push("COMPANY", true);
但它无法将更多内容推送到请求中并抛出此错误->request.push 不是 function 不确定如何以正确的方式执行此操作
如果你希望你的请求是一个数组,那么这样做:
getCreateRequest = function (field, required) {
return [
{
field: field,
required: required,
},
];
};
let request = getCreateRequest("PHONE", true);
request.push({ field: "MOBILE", required: true });
console.log(request);
getCreateRequest = function (field, required) {
return {
additionalFields: [
{
field: field,
required: required
}
]
};
};
您的getCreteRequest
function 正在返回 Object。因此,如果您想修复它。 你可以:
request['additionalFields'].push({ field: "MOBILE", required: true });
这似乎可以在不使用任何用户定义函数的情况下完成,如下所示。
const data = { additionalFields:[] }; data.additionalFields.push(...[ { field: "PHONE", required: true }, { field: "COUNTRY", required: true }, { field: "MOBILE", required: true } ]); console.log( data );
一个 Class
但是,如果您需要定义自己的方法,例如下面的Fields#addFields()
,您可以定义一个addFields
我可以将方法命名为 addFields,而不是将其命名为push
,但我选择不这样做。 而且,您this
链接调用 - 只要返回即可。
class Fields { constructor(field, required) { this.data = {additionalFields: [{field, required}]}; return this; } get fields() { return this.data; } addFields(field, required) { this.data.additionalFields.push({field, required}); return this; } } const fields = new Fields("HOME", true); console.log( fields.fields ); fields.addFields("MOBILE", false); console.log( fields.fields ); fields.addFields("EMAIL", true).addFields("BEEPER", false).addFields("DAD", true); console.log( fields.fields );
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.