
使用javascript高效处理数组对象:合并与格式转换
本文介绍一种JavaScript方法,用于将数组对象按toolName合并并转换格式。该方法利用reduce方法实现高效的数据处理。
步骤如下:
-
按
toolName分组: 使用reduce方法将具有相同toolName的对象聚合到一起。 -
合并
timeRange和value: 对于每个toolName,将所有对象的timeRange和value分别合并成数组。 确保timeRange和value数组元素一一对应。
以下是实现代码:
function transformData(list) {
const groupedData = list.reduce((result, item) => {
(result[item.toolName] = result[item.toolName] || []).push(item);
return result;
}, {});
return Object.entries(groupedData).map(([toolName, items]) => ({
[toolName]: items.reduce((acc, item) => {
const normName = item.normName;
acc[normName] = acc[normName] || { normName, timeRange: [], value: [] };
acc[normName].timeRange.push(item.timeRange);
acc[normName].value.push(item.value);
return acc;
}, {})
}));
}
此代码首先按toolName分组数据,然后对每个toolName下的数据,进一步按normName分组,并将timeRange和value合并到对应的normName对象中。 最终输出结果为一个对象数组,每个对象包含一个toolName和其对应的处理后的数据。 此方法清晰易懂,且效率较高,适合处理大量数据。
立即学习“Java免费学习笔记(深入)”;










