在 ES6 中重命名对象属性的最佳方法

luk*_*z-p 4 javascript ecmascript-6 reactjs

我还在学习 js,我需要一个建议。我从后端获取 json 对象,但键有下划线。将键重命名为例如 folder_name 为 Folder name 的最佳做法是什么?属性列表是已知的并已完成,因此我可以将新名称保留在常量中。在前端,我已经像这样使用它:

const showPropertiesList = properties => Object.keys(properties).map(property => (
  <PropertyKey key={property}}>
    `${property}: ${properties[property]}`
  </PropertyKey>
));
Run Code Online (Sandbox Code Playgroud)

最好在此映射中使用重命名函数或在获取所有重命名的键值之前创建单独的函数?

json文件:

properties {
  folder_name: 'test',
  user_email: 'test@example.com',
  user_agreed: 1,
  site: 'example.com',
}
Run Code Online (Sandbox Code Playgroud)

Kir*_*nov 10

您可以创建某种mapping对象,然后使用以下Object.keysreduce函数的组合:

const properties = {
  folder_name: "test",
  user_email: "test@example.com",
  user_agreed: 1,
  site: "example.com"
};

const mapping = {
  folder_name: "Folder name",
  user_email: "User email",
  user_agreed: "User agreed",
  site: "Site"
};

const mapped = Object.keys(properties).reduce((acc, key) => {
  acc[mapping[key]] = properties[key];
  return acc;
}, {});

console.log(mapped);
Run Code Online (Sandbox Code Playgroud)


Vla*_*pov 7

尝试这个:

const { folder_name: folderName, user_email: email, ...others } = originObject;
const renamedPropsObject = { folderName, email, ...others }
Run Code Online (Sandbox Code Playgroud)