javascript - 如何将数据转换成这样的结构
问题描述
如何将数组转换oArr
为结果,如下例所示
例子:
输入:
let oArr = [
{
'1': Object,
'range': [0, 778]
}, {
'2': Object,
'range': [0, 778]
}, {
'1': Object,
'range': [779, 1500]
}, {
'3': Objcet,
'range': [779, 1500]
}
]
输出:
result = [
{
'range': [0, 778],
'1': Object,
'2': Object
}, {
'range': [779, 1500],
'1': Object,
'3': Object
}
]
解决方案
reducer
对数组的每个元素使用函数将它们按范围值分组,并通过迭代除范围以外的所有属性来设置结果上的另一个键。
oArr = [
{
'1': 'Object',
'range': [0, 778]
}, {
'2': 'Object',
'range': [0, 778]
}, {
'1': 'Object',
'range': [779, 1500]
}, {
'3': 'Object',
'range': [779, 1500]
}
];
var result = Object.values(oArr.reduce((c, obj) => {
c[obj.range] = c[obj.range] || {'range': obj.range};
for (const [key, value] of Object.entries(obj)) {
if(key === 'range') continue;
c[obj.range][key] = value;
}
return c;
}, {}));
console.log(result);
推荐阅读
- javascript - getElementById 在遍历 HTMLcollection 时尝试追加时抛出错误
- python - 带有通用子解析器命令的 Python argparse
- azure - 由于 MFA 导致无法登录
- realm - 在另一个包含客户端应用程序的 keycloak 领域中进行身份验证的 Keycloak 领域客户端用户
- android - 这个 Handler 类应该是静态的,否则可能会发生泄漏 - 自定义 Chronometer
- python - Python方法覆盖问题
- python - 逆 MOD 一棵树到它的除数从素数
- typescript - Cucumber 场景大纲:将空格字符串“”作为示例表中的值传递
- javascript - 从 csv 文件中遍历头数组以获取 P5.js 中的下拉列表
- php - LARAVEL - 表单验证返回查看而不是返回 JSON?