arrays - 按ID将一个对象拆分为多个对象
问题描述
我有以下结构的对象
const obj = {
[name-1]: 'Peter',
[name-2]: 'Mark',
[name-3]: 'Rich',
[age-1]: 25,
[age-2]: 30,
[age-3]: 45
}
我需要把它分成3个单独的对象
const obj1 = {
[name-1]: 'Peter',
[age-1]: 25,
}
const obj2 = {
[name-2]: 'Mark',
[age-2]: 30,
}
const obj3 = {
[name-3]: 'Rich',
[age-3]: 45,
}
我怎样才能做到这一点?
解决方案
- 首先使用获取输入对象的条目
Object.entries
Reduce over
步骤 1 中生成的条目- 对于每次迭代的当前值
split by
分隔符'-'
- 将其简化为一个对象,
the object
将充当查找存储 - 发布只是
extract the values
为了查找。 Transform
使用单个条目返回其单个对象Object.fromEntries
const obj = {
'name-1': 'Peter',
'name-2': 'Mark',
'name-3': 'Rich',
'age-1': 25,
'age-2': 30,
'age-3': 45
};
const groupedResult = Object.values(Object.entries(obj).reduce((r, c) => {
const [key, val] = c;
const split = key.split('-');
if (!r[split[1]]) {
r[split[1]] = [c];
} else {
r[split[1]].push(c);
}
return r;
}, Object.create(null)))
.map((value) => Object.fromEntries(value));
console.log(groupedResult);
推荐阅读
- macos - 如何在 Mac 上设置远程访问?
- orm - 教义 ORM 创建方法 phpspec 测试失败
- oracle - Read and update an Oracle table with 20 millions records
- swift - 从我的 api 调整图像以填充我们所需宽度和高度的 uiimageview
- prolog - 条件的联合
- haskell - Recursive definition hangs indefintely
- python - 使用python将Excel文件作为varbinary加载到数据库中
- typescript - Ignore default value of class when instantiating
- project-reactor - Reactor - 溢出策略 IGNORE 与 ERROR
- python - attempted relative import beyond top-level package python