JavaScript:报告的地址完整最少字段

eufgjt7s  于 2023-04-10  发布在  Java
关注(0)|答案(1)|浏览(74)

我有以下6个领域的地址对我的从
1.地址_1行
1.地址_Line2
1.地址_Line3
1.地址_城市
1.地址_国家
1.地址_邮编
现在,没有一个字段是强制性的,因此在新字段之后创建
名为Alt_Address__1、2、3、4、5和6(在表单上不可见)但是
OnSave(使用JavaScript)
将考虑上述6个发票地址字段中的每一个,按此顺序-街道1、街道2、街道3、城市、县、邮政编码。
第一个已填充字段将保存到Alt_Invoice_Address_1中,第二个已填充字段将保存到Alt_Invoice_Address 2中,依此类推。
我无法想出一个聪明的逻辑,任何建议,我如何编写JavaScript函数实现上述要求

6ljaweal

6ljaweal1#

你可以做的是在像这样的单个对象中收集所有字段数据之后:

let formObject = {
    "Street1": "manchester",
    "Street2": "123 road",
    "Street3": "something something",
    "City": "NY"
    "Country": "USA"
    "Postcode": "5165812168452"
}

首先使用Object.values()函数提取对象的所有属性值,并将其存储在一个新的var中。
下一步是使用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字段都用填充的字段值完成了。希望这对你有帮助。

相关问题