如何重命名对象的键?

Non*_*one 0 javascript

我有这个 :

  for (const key of Object.keys(filter)) {

}
Run Code Online (Sandbox Code Playgroud)

问题是有时我得到后缀为 _1 的密钥,而不是:

keyName_1{
  prop:'prop1'
}
Run Code Online (Sandbox Code Playgroud)

当我调用服务时,这个 keyName_1 是一个问题,所以我想要的总是替换这个 keyName1。我试过这个:

for (const key of Object.keys(filter)) {
      if(key.includes('_1')){

        key.replace('_1','');
      }
  }
Run Code Online (Sandbox Code Playgroud)

但是后来我丢失了那个键的对象值,所以我的道具不再存在。是否有任何选项可以仅更改密钥名称?

hev*_*ev1 5

您可以将该值分配给新键并删除旧键。

let o = {
  keyName_1: {
    prop: 'prop1'
  }
};
for (const key of Object.keys(o)) {
  if (key.includes('_1')) {
    o[key.replace('_1','')] = o[key];
    delete o[key];
  }
}
console.log(o);
Run Code Online (Sandbox Code Playgroud)