【问题标题】:How to rename iterably object properties如何重命名可迭代的对象属性
【发布时间】:2021-03-19 23:41:25
【问题描述】:

每个对象属性的第一个字母都有下划线; 我想删除第一个子字符串,并尝试将字符串方法“替换”到所有对象属性,但在这种情况下它不起作用。

// 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('_', '');
  }
}

【问题讨论】:

    标签: javascript reactjs loops object


    【解决方案1】:

    也许你可以这样做,

    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;
    

    希望你有一些想法!

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

      • 应该是posts['post-meta-fields'][newKey],而不是key.newKey...点运算符在那里不起作用,基础对象不应该是key
      猜你喜欢
      • 1970-01-01
      • 2011-11-10
      • 2014-04-15
      • 1970-01-01
      • 2011-02-05
      • 1970-01-01
      • 2022-07-14
      • 2011-06-18
      相关资源
      最近更新 更多