我还在学习js,我需要一个建议。我从后端获取json对象,但键有下划线。将密钥重命名为的最佳做法是什么,例如folder_name到Folder name?属性列表已知并已完成,因此我可以在常量中保留新名称。在前端,我已经像这样使用它了:
const showPropertiesList = properties => Object.keys(properties).map(property => (
<PropertyKey key={property}}>
`${property}: ${properties[property]}`
</PropertyKey>
));
最好在此地图中使用重命名功能,或者在使用值获取所有重命名的键之前创建单独的函数? json文件:
properties {
folder_name: „test”.
user_email: test@example.com,
user_agreed: 1,
site: „example.com”,
}
答案 0 :(得分:2)
您可以创建某种mapping
对象,然后使用以下Object.keys和reduce功能的组合:
let properties = {
folder_name: "test",
user_email: "test@example.com",
user_agreed: 1,
site: "example.com"
};
let mapping = {
folder_name: "Folder name",
user_email: "User email",
user_agreed: "User agreed",
site: "Site"
};
let mapped = Object.keys(properties).reduce((acc, key) => {
acc[mapping[key]] = properties[key];
return acc;
}, {});
console.log(mapped);
&#13;
答案 1 :(得分:0)
映射是一种很好的方法,正如之前的答案所指定的那样。
在您的情况下,您也可以重命名内联:
const showPropertiesList = properties => Object.keys(properties).map(property => (
<PropertyKey key={property}}>
`${property.replace('_', ' ')}: ${properties[property]}`
</PropertyKey>
));
取决于您是希望在任何地方进行更改还是仅向用户显示
答案 2 :(得分:0)
旅行,所以我不能编程atm。但我认为这会让你朝着正确的方向前进。
让newArray = array()
OldArray.forEach(function(value, key) {
// do stuff here to change the key value
Let newKeyValue = //something
newArray[ newKeyValue] = value;
});
// do stuff with newArray
希望它有所帮助。不测试它!
答案 3 :(得分:0)
尝试一下:
const { folder_name: folderName, user_email: email, ...others } = originObject;
const renamedPropsObject = { folderName, email, ...others }