首页 > 其他分享 >数组groupby

数组groupby

时间:2024-07-18 16:41:20浏览次数:13  
标签:name age sex item result 数组 generateKey groupby

const students = [
  { name: 's1', age: 22, sex: 'female' },
  { name: 's2', age: 22, sex: 'male' },
  { name: 's3', age: 23, sex: 'female' },
  { name: 's4', age: 24, sex: 'male' },
  { name: 's6', age: 21, sex: 'male' },
  { name: 's5', age: 22, sex: 'female' },
  { name: 's7', age: 24, sex: 'female' }
]
arr = [1, 4, 2, 4, 5, 6, 5]
function groupBy(arr, generateKey) {
  if (typeof generateKey === 'string') {
    const attrKey = generateKey
    generateKey = (item) => item[attrKey]
  }
  const result = {}
  arr.forEach(item => {
    const key = generateKey(item)
    if (result.hasOwnProperty(key)) {
      result[key].push(item)
    } else {
      result[key] = [item]
    }
  })
  return result
}





console.log(groupBy(students, 'age'))
console.log(groupBy(students, item => item.sex))

 

标签:name,age,sex,item,result,数组,generateKey,groupby
From: https://www.cnblogs.com/howhy/p/18309868

相关文章

  • 代码随想录算法训练营第二天| 977 有序数组平方 209 长度最小子数组 59 螺旋矩阵
    977有序数组平方funcsortedSquares(nums[]int)[]int{ //思路,最简单,先平方,再排序 foridx,num:=rangenums{ nums[idx]=num*num } //插排思想,维护两个列表,将无序列表元素插入到有序列表合适位置 fori:=1;i<len(nums);i++{//此处nums[:i]即我们维......
  • 代码随想录算法训练营第42期 第二天 | LeetCode977. 有序数组的平方、209. 长度最小的
    一、977.有序数组的平方学习链接:有序数组的平方状态:暴力解法与双指针都做出来了时间复杂度:暴力解法O()    双指针解法 O()细节之处:暴力解法1       双指针解法1  暴力解法classSolution{publicint[]sortedSquares(int[]nums){......
  • DAY2 数组part02
     今日任务977.有序数组的平方,209.长度最小的子数组,59.螺旋矩阵II,总结977.有序数组的平方题目链接:https://leetcode.cn/problems/squares-of-a-sorted-array/文章讲解:https://programmercarl.com/0977.%E6%9C%89%E5%BA%8F%E6%95%B0%E7%BB%84%E7%9A%84%E5%B9%B3%E6%96%......
  • 前端开发数组去重方法
    使用原生JavaScript方法1. filter() 方法配合 indexOf()constuniqueArray=array.filter((item,index,self)=>{returnself.indexOf(item)===index;});该方法利用 filter() 遍历数组,对于每个元素,通过 indexOf() 查找其在原数组中的第一个索引。如果当前......
  • 双栈:数组实现
    双栈:数组实现结构描述:#include<iostream>#include<cstdlib>#defineMAX100usingnamespacestd;typedefintDataType;classDoubleStack{public:DataType*A;//两个栈的栈顶intTP;intTB;//建立一个空栈voidInit();//判空、......
  • 栈:数组实现
    栈:数组实现结构描述:#defineMAX100typedefintDataType;classSeqStack{public:DataType*A;intTop;voidInit();voidPush(DataTypeX);voidPop();DataTypeGetTop();voidMakeEmpty();boolIsEmpty();boolIsFull()......
  • C++ 返回数组指针简单测试
    C++返回数组指针简单测试:#include<iostream>staticconstsize_tARR_SIZE=10;staticintarr[ARR_SIZE];//更新数组#defineUPDATE_ARR_DATA(i)for(size_tj=0;j<ARR_SIZE;++j)\{\a......
  • C 语言实例 - 数组拆分与合并
    将一个数组拆分为两个数组,一个为奇数数组,一个为偶数数组实例#include<stdio.h>intmain(){intarray[10]={0,1,2,3,4,5,6,7,8,9};inteven[10],odd[10];intloop,e,d;e=d=0;for(loop=0;loop<10;loop++){......
  • Python数据可视化之numpy的11个常用的创建数组的函数
    numpy库在处理成千上万的数据时,Python的1维列表已经不适合来对数据进行处理,效率会很慢,所以numpy就诞生了,他可以将列表变成数组,而数组可以是1维、2维、3维甚至更高纬度,可用于存储和处理大型的矩阵,此外numpy提供了大量的数学函数,包括数学、逻辑、形态操作、排序、选择,输出和......
  • 获取数组中出现最多的元素
    1、方法一:需要三次循环,缺点:大量的循环操作会消耗大量的计算资源、代码多   constarr=['a','c','b','1','9','b','sdf','6','b','aaaa','汉字','汉字','sdf......