繁体   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