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