javascript - 在Javascript中重建嵌套对象
问题描述
我在 Javascript 中有这样的对象,我需要像下面这样重建它:
let data = {
"10001": {
'brand': 'jeep',
'model': 'cherokee',
'price': 27335,
},
'10002': {
'brand': 'jeep',
'model': 'compas',
'price': 23775,
},
'32402': {
'brand': 'dodge',
'model': 'challenger',
'price': 29590,
}
};
像这样 :
let data_sorted = {
"jeep": {
10001: {
'brand': 'jeep',
'model': 'cherokee',
'price': 27335,
}, 10002: {
'brand': 'jeep',
'model': 'compas',
'price': 23775,
}
},
"dodge": {
32402: {
'brand': 'dodge',
'model': 'challenger',
'price': 29590,
}
}
};
尝试过Object.assign
,但它合并了重复的键。注意品牌名称“jeep”是重复的。我认为可以使用扩展运算符 (...) 三个点来完成
解决方案
您需要一些来为第二级构建新对象。
let data = { 10001: { brand: 'jeep', model: 'cherokee', price: 27335 }, 10002: { brand: 'jeep', model: 'compas', price: 23775 }, 32402: { brand: 'dodge', model: 'challenger', price: 29590 } },
result = Object
.entries(data)
.reduce(
(r, [k, v]) => ({ ...r, [v.brand]: { ...(r[v.brand] || {}), [k]: v } }),
{}
);
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
推荐阅读
- python - Keras CNN 架构
- javascript - 如何在每个矩形端点中绘制圆圈
- sql-server - MS SQL Connect 给出错误 mssql: A SQL editor must have focus
- .net-core - Add-Migration 或 dotnet ef 迁移添加
- javascript - 角度变化检测 zone.js
- git - 从管道推送到私有 bitbucket 存储库
- sql - CodeIgniter SQL 转义正则表达式查询
- python - selenium python - 无法在表中找到隐藏元素
- visual-studio - Visual Studio 15.7.1 Typescript 调试器没有中断
- node.js - 如何使用 slack 范围包含电子邮件和头像