zoukankan      html  css  js  c++  java
  • es6 数组的工具类

       根据Es6中map和Set的特性,实现了对array的分组和转换操作。

       

    
    exports.mapToObj = function (strMap) {
      let obj = Object.create(null);
      for (let [k,v] of strMap) {
        obj[k] = v;
      }
      return obj;
    };
    
    exports.objToMap = function (obj) {
      let strMap = new Map();
      for (let k of Object.keys(obj)) {
        strMap.set(k, obj[k]);
      }
      return strMap;
    };
    exports.groupBy = function (values, key) {
      let map = new Map();
      for (let value of values) {
        if (!value.hasOwnProperty(key)) {
          return [];
        }
        let groupkey = value[key];
        let groupSet = map.get(groupkey) || new Set();
        groupSet.add(value);
        map.set(groupkey, groupSet);
    
      }
      return map;
    };
    
    exports.distinct=function (values) {
      if(!Array.isArray(values))
        throw new Error("invalid param");
      return [...new Set(values)];
    };

    如上,这样利用es6的特性,不用再引入loadash等类库,需要其他功能均可方便的实现。

    发句感慨,写代码就像做一件艺术品,要有所追求,不要草草了事,有匠心也有意思。

  • 相关阅读:
    一文掌握Docker Compose
    Flannel配置详解
    Helm二:安装
    Helm一:简介
    ubuntu内核及系统升级
    Ogre 编辑器一(MyGUI+Ogre整合与主界面)
    MyGUI 解析
    Ogre 监听类与渲染流程
    OpenGL 阴影之Shadow Mapping和Shadow Volumes
    Ogre RTSS组件解析
  • 原文地址:https://www.cnblogs.com/ryansecreat/p/6126361.html
Copyright © 2011-2022 走看看