我試圖避免寫行數,因為所有欄位的回應都是相同的,所以我嘗試使用 for 回圈對欄位進行分類 ['mandatory', 'optional'] 但我仍然需要寫兩次環形。這是否可以在不影響性能的情況下更有效地撰寫。
//mandatory
obj.required['test1' number] = true;
obj.visible['test1' number] = true;
obj.required['test2' number] = true;
obj.visible['test2' number] = true;
obj.required['test3' number] = true;
obj.visible['test3' number] = true;
//optional
obj.visible['test4' number] = true;
obj.visible['test5' number] = true;
嘗試使用 for 回圈:
var mandatoryField = ['test1', 'test2', 'test3'];
var optionalField = ['test4', 'test5'];
for(var i=0; i<mandatoryField.length; i ) {
obj.required[madatoryField[i] number] = true;
obj.visible[madatoryField[i] number] = true;
}
uj5u.com熱心網友回復:
你能改變欄位的結構嗎?
const obj = {
visible: {
test1: false,
test2: false,
test3: false,
test4: false,
test5: false,
test6: false,
test7: false,
test8: false,
},
required: {
test1: false,
test2: false,
test3: false,
test4: false,
test5: false,
test6: false,
test7: false,
test8: false,
},
};
const fields = [
{ field: 'test1', required: true },
{ field: 'test2', required: true },
{ field: 'test3', required: true },
{ field: 'test4' },
{ field: 'test5' },
];
fields.forEach(({ field, required }) => {
const key = field; // `${field}${number}`;
obj.visible[key] = true;
if (required) {
obj.required[key] = true;
}
});
console.log(obj);
uj5u.com熱心網友回復:
這樣的事情將幫助您在一次迭代中實作這一目標。
var mandatoryField = ['test1', 'test2', 'test3'];
var optionalField = ['test4', 'test5'];
const limit = new Array(Math.max(mandatoryField.length, optionalField.length)).fill(0);
limit.forEach((item, index) => {
if(mandatoryField[index]) {
obj.required[mandatoryField[index] number] = true;
obj.visible[mandatoryField[index] number] = true;
}
if(optionalField[index]) {
obj.visible[optionalField[index] number] = true;
}
})
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/456252.html
上一篇:角度組件不更改模板
