簡體   English   中英

如何有條件地更新對象的屬性?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM