zoukankan      html  css  js  c++  java
  • 把对象数组按照某一个属性(或某几个属性)进行分类

    //把对象数据按照某一个属性进行分类
    function sort_pro(data, keys = []) {     //keys可以传一个数组
          var c = [];
          var d = {};
          for (var element of data) {
            let element_keyStr = "";
            let element_key = [];
            let element_keyObj = {};
            for (var key of keys) {
              element_key.push(element[key]);
              element_keyObj[key] = element[key];
            }
            element_keyStr = element_key.join("_");
            if (!d[element_keyStr]) {
              c.push({
                ...element_keyObj,
                children: [element]
              });
              d[element_keyStr] = element;
            } else {
              for (var ele of c) {
                let isTrue = keys.some(key => {
                  return ele[key] != element[key];
                });
                if (!isTrue) {
                  ele.children.push(element);
                }
              }
            }
          }
          return c;
        }
    

      



      var data = [
      {name:'张三',score:56},
      {name:'张三',score:70},
      {name:'李四',score:100}
      ]

      sort_pro(data ,['name'])       

    结果:




      

  • 相关阅读:
    js触摸屏案例
    Docker
    Docker 镜像加速
    Docker 命令大全
    linux gpasswd
    Docker基础教程
    PHP输出毫秒时间戳
    PHP Variable handling 函数
    Partition Array by Odd and Even
    Median
  • 原文地址:https://www.cnblogs.com/wangyunhui/p/11255703.html
Copyright © 2011-2022 走看看