将某些对象值更改为大写的更短方法

a shorter way to change some object values to uppercase

我有一个大对象,需要将一些值(不是全部)更改为大写

obj.state = obj.state.toUpperCase();
obj.city = obj.city.toUpperCase();
obj.street = obj.street.toUpperCase();
obj.title = obj.title.toUpperCase();

有没有更短的方法,像这样:

obj(state,city,street,title).toUpperCase();  

谢谢

您可以遍历对象的所有键并执行如下操作:

for (const k of Object.keys(obj)) {
  obj[k] = obj[k].toUpperCase()
}

如果只想更新部分值,可以过滤键:

const keys = ['state', 'city', 'street', 'title']
for (const k of Object.keys(obj).filter((k) => keys.includes(k))) {
  obj[k] = obj[k].toUpperCase()
}

您可以将它变成一个函数以使其可重用:

function objToUpperCase(obj, keys) {
  for (const k of Object.keys(obj).filter((k) => keys.includes(k))) {
    obj[k] = obj[k].toUpperCase()
  }
  return obj
}
// to call:
objToUpperCase(obj, ['state', 'city', 'street', 'title'])