数据归类

/**
 * @param  {[fields]} 以字段分类的数据
 * @param  {[datas]} 被归类的数据
 * @param  {[map_field]} 映射字段名
 * @param  {[sortType]} 归类类型:单一(single),复合(multi)
 */
function sortDatas(fields, datas) {
    var cache = {};
    return function(map_field, sortType) {
      if(sortType !== 'single' && sortType !== 'nulti')  return;

      fields.forEach(function(field) {
          var _id = field.id;  // 根据id值匹配
          cache[_id] = [];

          datas.forEach(function(elem) {
             var map_val = elem[map_field];
              
             if(sortType === 'single') {
                if(map_val == _id) {
                    cache[_id].push(elem);
                }
             } else if(sortType === 'multi') {
                var _arr = map_val.split(',');
                 _arr.forEach(function(val) {
                    if(val == _id) {
                        cache[_id].push(elem);
                    }
                })
             }
          })
      })
      return cache;
    }
}

你可能感兴趣的:(数据归类)