[英]How to conditionally update properties of an object?
我有一個名為options的對象。 我需要執行類似下面的操作,如果已經設置了屬性,則更新它,否則不執行任何操作:
if (options.A) options.A = formatMessage(options.A); if (options.B) options.B = formatMessage(options.B); if (options.C) options.C = formatMessage(options.C); if (options.D) options.D = formatMessage(options.D);
有沒有更好的方法來檢查是否設置了對象的特定屬性,然后在純JavaScript中更新?
迭代一系列鍵名 - 如果每個鍵的檢索值都是真實的,請調用該函數並重新分配:
['A', 'B', 'C', 'D'].forEach((key) => {
if (options[key]) {
options[key] = formatMessage(options[key]);
}
});
如果這些是唯一可能存在的密鑰,您可以考慮將.reduce
用於新對象,從而避免不必要的突變:
const formattedOptions = Object.entries(options).reduce((a, [key, val]) => {
a[key] = formatMessage(val);
return a;
}, {});
您可以考慮這個選項
const obj = { 'A':'test','B':'test1','C':'test2','D':'test3' }; Object.keys(obj).map(key=> { obj[key]=formatMessage(obj[key]); }); function formatMessage(msg){ return msg + 'translated'; } console.log(obj);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.