您可以使用以下代码来实现对'cfList'中数据的统计和赋值操作:

const patientList = ref([]);

// 根据name, age和sex进行分组统计
const groupBy = (data, key) => {
  return data.reduce((result, item) => {
    (result[item[key]] = result[item[key]] || []).push(item);
    return result;
  }, {});
};

// 统计同一name且同一age,同一sex的数据条数,并将id也赋值给每条数据
const processData = (data) => {
  const groupedData = groupBy(data, 'name');
  for (const name in groupedData) {
    const ageGroupedData = groupBy(groupedData[name], 'age');
    for (const age in ageGroupedData) {
      const sexGroupedData = groupBy(ageGroupedData[age], 'sex');
      for (const sex in sexGroupedData) {
        const count = sexGroupedData[sex].length;
        sexGroupedData[sex].forEach((item) => {
          item.count = count;
          patientList.value.push(item);
        });
      }
    }
  }
};

// 请求cfList数据
const cfListResponse = await defHttp.get({ url: '/workstation/ylYncf/cflistByPharmacy', params: formData });

// 处理数据并赋值给patientList
processData(cfListResponse.data);

在上述代码中,我们定义了一个groupBy函数,用于根据指定的键对数据进行分组。然后,我们定义了processData函数,该函数会先根据name对数据进行一次分组,然后在每个name的组内,再根据age进行一次分组,最后在每个age的组内,根据sex进行一次分组。在每个sex的组内,我们统计了数据的条数,并将该条数赋值给每条数据的'count'属性,然后将每条数据添加到'patientList'中。

最后,我们通过调用processData函数来处理'cfListResponse.data'数据,并将处理后的数据赋值给'patientList'。


原文地址: https://www.cveoy.top/t/topic/qFKa 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录