我的邮箱地址有以下6个字段
- Address_Line1
- Address_Line2
- Address_Line3
- Address_City
- Address_Country
- Address_PostCode
现在,没有一个字段是强制的,所以在新字段
后面创建命名Alt_Address__1, 2, 3, 4, 5和6(在表单上不可见)但是
OnSave (Using JavaSCript)
以上6个发票地址字段中的每一个都将被考虑,在这个顺序中-街道1,街道2,街道3,城市,县,邮政编码。
第一个填充的字段将保存到Alt_Invoice_Address_1中第二个填充的字段将保存到Alt_Invoice_Address 2中等等,通过6个字段。
我无法想出一个聪明的逻辑,关于我如何写JavaScript函数来实现上述要求的任何建议
你能做的是在收集所有字段数据在一个单一的对象,像这样:
let formObject = {
"Street1": "manchester",
"Street2": "123 road",
"Street3": "something something",
"City": "NY"
"Country": "USA"
"Postcode": "5165812168452"
}
首先使用object .values()函数提取对象的所有属性值,并将其存储在一个新的变量中。
下一步是使用Array.prototype.forEach()函数遍历每个值并将它们存储在具有相应属性的对象中。
由于您的属性名称都是相同的(Alt_Invoice_Address),只有增加的数字,您可以在forEach函数中添加索引参数来手动创建您的属性。
下面是一个例子:
let newFormObject = {};
let formValues = Object.values(formObject);
formValues.forEach((value, index)=>{
let newPropertyName = "Alt_Invoice_Address_" + index;
newFormObject[newPropertyName] = value;
});
现在你有了一个新对象,所有的Alt_Address字段都用填充的字段值完成了。希望对你有所帮助。