Javascript 如何重命名iterably对象属性

Javascript 如何重命名iterably对象属性,javascript,reactjs,loops,object,Javascript,Reactjs,Loops,Object,每个对象属性都在第一个字母下面加下划线; 我想删除第一个子字符串,并尝试对所有对象属性使用字符串方法“replace”,但在这种情况下不起作用 // nested object const posts = { // ... 'post-meta-fields': { _bg_advantages_home: [''], _bg_banner_home: ['35'], _bg_info_1_home: ['41'], _bg_info_2_home: ['

每个对象属性都在第一个字母下面加下划线; 我想删除第一个子字符串,并尝试对所有对象属性使用字符串方法“replace”,但在这种情况下不起作用

// nested object
const posts = {
  // ...
  'post-meta-fields': {
    _bg_advantages_home: [''],
    _bg_banner_home: ['35'],
    _bg_info_1_home: ['41'],
    _bg_info_2_home: [''],
    _bg_offers_home: ['38'],
    _bg_sales_home: ['36'],
    _bg_video_home: ['']
  }
  // ...
};
// I tried this, but its not working
for (const key in posts['post-meta-fields']) {
  for (let key_2 in key) {
    key_2 = key_2.replace('_', '');
  }
}

现在只需删除旧密钥并添加新密钥:

let newKey = key_2.replace('_','');
key.newKey = key[key_2];
delete key[key_2];

也许你可以这样做

const tempObj = {};
for(let key in posts["post-meta-fields"]) {
     const modifiedKey = key.replace('_','');
     tempObj[modifiedKey] = posts["post-meta-fields"][key]
}
posts["post-meta-fields"] = tempObj;

希望你有一些想法

应该是
posts['post-meta-fields'][newKey]
,而不是
key。newKey
…点运算符在那里不起作用,基本对象不应该是
key
谢谢,它有助于解决此问题!!!