在echarts图表数据中,需要将数据进行处理。给定一个数组对象,需要将相同的字段都提取到一个数组中,我们就可以封装一个统一的方法,将数据进行处理。
如果只是提取个别字段,可以使用map进行遍历
data.map(x=>return x.name)
/**
* @description: 给定一个数组,将数组中的每个字段都提取到单独的数组中
* @param {data} 数组
* @return {*} 对象数组
*/
export function getFieldsObject(data: any) {
let fieldsMap = new Map();
// 遍历数组
for (let entry of data) {
// 遍历对象
for (let key in entry) {
if (!fieldsMap.has(key)) {
fieldsMap.set(key, []);
}
fieldsMap.get(key).push(entry[key]);
}
}
// 输出结果
// for (let [fieldName, values] of fieldsMap.entries()) {
// console.log(`${fieldName}: `, values);
// }
// 若需要将Map转换为对象便于后续操作
let fieldsObject = Object.fromEntries(fieldsMap);
return fieldsObject
}
使用效果:
const data = [{a:1,b:2},{a:11,b:22}]
const datas = getFieldsObject(data)
//datas--- {a:[1,11],b:[2,22]}