javascript - 按字段格式化对象
问题描述
const data = {
language: 'en',
type: 'trx',
country: 'Croatia',
Method: 'trx_pay',
Email: 'email',
Phone: '123',
City: 'Zagreb'
}
我需要将上述对象格式化为这样的格式:
const data = {
language: 'en',
type: 'trx',
country: 'Croatia',
userData: {
Method: 'trx_pay',
Email: 'email',
Phone: '123',
City: 'Zagreb'
}
}
PascalCase 中的所有字段都应该放入一个嵌套对象中。另外,我完全了解 camelCase 中的字段(语言、类型和国家/地区)。
到目前为止,这是我使用 Lodash 尝试过的:
const staticKeys = ['language', 'type', 'country']; // These keys can't changes
const staticData = pick(data, staticKeys);
const userData = omit(data, staticKeys);
const res = { ...staticData, userData };
没有 Lodash 有没有更优雅的方法?
解决方案
如果不想使用 lodash,可以使用解构赋值。由于您知道静态键,因此您可以解构它们(而不是将它们放入数组中),并使用其余语法( ...
) 来获取所有其他剩余属性:
const data = { language: 'en', type: 'trx', country: 'Croatia', Method: 'trx_pay', Email: 'email', Phone: '123', City: 'Zagreb' };
const {language, type, country, ...userData} = data;
const res = {language, type, country, userData};
console.log(res);
推荐阅读
- android - 如何为 MPAndroidChart LineChart 设置值标签和线之间的填充
- python - 等待响应直到超时
- excel - 在excel VBA中使用发送键打开后如何检查文件是否已经打开?
- java - 无法在 netbeans8-2 上运行 javafx 项目
- sybase - 混乱的 Adaptive Server Enterprise 的定义
- c# - 无法在 chrome 中调试或启动我的 MVC 应用程序
- python - 如何在正则表达式中找到模式?
- c# - 从 wwwroot 下载 html 文件一直显示 Not Found 错误
- r - 为非常大的空间数据集拟合 Poisson GLM 模型
- android - Android 中的 dimens.xml 无法正常工作