关于将集合根据某个属性转Map的问题

Java分组

  • lombda分组为List<Object,List<Object>>
list.stream().collect(Collectors.groupingBy(SlhEvaluationAssignment::getTeamId));
  • 将集合某个字段作为Mapkey,实体本身作为value,数据格式为Map<Object,Object>
list.stream().collect(Collectors.toMap(Apple::getId, a -> a,(k1,k2)->k1));
  • 获取分组后的值
for (Map.Entry<Integer, List<SlhEvaluationAssignment>> entry : collect.entrySet()) {
    Integer teamId = entry.getKey();
    List<SlhEvaluationAssignment> slhEvaluationAssignmentList = entry.getValue();
}

JS

  • 将数组某个字段作为{}属性,实体本身作为属性值转为对象
let data = Object.fromEntries(array.map(item => [item.frequency, item]))
// 取值
data['分组的字段值']
  • 前端多字段过滤
/**
 * 前端多字段过滤(入参分别为:原数组、检索的值、检索字段如['id','name'])
 */
search(arr, query, key = []) {
      return arr.filter(v => Object.values(Object.fromEntries(Object.entries(v).filter(item => (key.length ? key.includes(item[0]) : true)))).some(v => new RegExp(query + '').test(v)))
    },
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。