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

Java分组

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

你可能感兴趣的:(关于将集合根据某个属性转Map的问题)