在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]}