首页 > 其他分享 >js 数组对象根据多个key值进行分类

js 数组对象根据多个key值进行分类

时间:2022-11-21 11:35:20浏览次数:45  
标签:sku key js item 数组 orderNo id name

const list = [
{ id: 1, name: "手机1", orderNo: "6901443393268", sku: "51095BKR" },
{ id: 2, name: "手机2", orderNo: "6901443393262", sku: "51095BBQ" },
{ id: 3, name: "手机3", orderNo: "6901443393262", sku: "51095BKR" },
{ id: 4, name: "手机2", orderNo: "6901443393262", sku: "51095BKR" },
{ id: 5, name: "手机5", orderNo: "6901443393268", sku: "51095BBQ" },
{ id: 6, name: "手机3", orderNo: "6901443393262", sku: "51095BKR" },
{ id: 7, name: "手机7", orderNo: "6901443393262", sku: "51095BKR" },
{ id: 8, name: "手机5", orderNo: "6901443393268", sku: "51095BBQ" },
{ id: 9, name: "手机5", orderNo: "6901443393268", sku: "51095BBQ" },
{ id: 10, name: "手机5", orderNo: "6901443393268", sku: "51095BBQ" },
{ id: 11, name: "手机5", orderNo: "6901443393268", sku: "51095BBQ" },
];

/**
* 数组对象根据多个key值进行分类
* @param {*} arr
* @param {*} key
*/
const handleArraySortByKey = (arr, key) => {
const obj = {};
arr.forEach((item) => {
let value = Array.isArray(key)
? key.map((v) => item[v]).join()
: item[key];
obj[value] ? obj[value].push(item) : (obj[value] = [item]);
});
return Object.keys(obj).map((item) => obj[item]);
};
console.log(handleArraySortByKey(list, ["orderNo", "sku"]));

 

js 数组对象根据多个key值进行分类_数组

 



标签:sku,key,js,item,数组,orderNo,id,name
From: https://blog.51cto.com/u_15469180/5873178

相关文章

  • 陪你去看 Lodash.js 起步
    lodash起步(数组)Lodash是一个较为流行的JavaScript的实用工具库。在开发过程中如果能熟练使用一些工具库提供的方法,有利于提高​​开发效率​​。笔者从API上入手,不分......
  • js-001
    JavaScript独立的语言,浏览器具有js解释器JavaScript代码存在形式:-Head中<script>//javascript代码alert(123);......
  • 48、OAK通过共享内存传递变长结构体(Rapidjson)进行数据和图片交互
    基本思想:主要学习一下在共享内存中传递变长的数据,这样在c#调用c++dll也可以雷同操作,以oak的检测和共享内存为代码整合,集成了rapidjson的使用,代码自己摘要和参考吧cmakelist......
  • 320 场周赛 数组中不等三元组的数目
    320场周赛数组中不等三元组的数目给你一个下标从0开始的正整数数组nums。请你找出并统计满足下述条件的三元组(i,j,k)的数目:0<=i<j<k<nums.lengthnums......
  • js中的base64转化
    创建一个base64.js文件,将以下代码粘贴进去varBase64={_keyStr:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",encode:function(e){......
  • c#/JS RSA 非对称加密
    可以用到前端加密,后端解密,或者后端加解密首先要知道这这个rsa是需要一个公钥一个私钥进行加解密的,公钥加密,私钥解密。可以去百度在线生成。脚本或者页面中先引用jsencry......
  • 每日算法之调整数组顺序使奇数位于偶数前面(二)
    JZ81调整数组顺序使奇数位于偶数前面(二)描述输入一个长度为n整数数组,数组里面可能含有相同的元素,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前面......
  • 一个jsqlparse+git做的小工具帮我节省时间摸鱼
    背景前些时间做了个小工具解决了团队内数据库脚本检验&多测试环境自动执行的问题,感觉挺有意思,在这跟大家分享一下。工具诞生之前的流程是这样:1.开发人员先在开发环境编......
  • v-for 中的 key
    1、使用子数组循环输出一堆数据。2、不依赖子组件状态或临时DOM状态(例如:表单输入值)的列表渲染输出。3、建议v-for就加上key,提升性能,避免vue运算,key就是记录元素......
  • nodejs版本管理工具nvm
    linux版本安装curl-o-https://gitee.com/Annlix/nvm-sh_nvm/raw/master/install.sh|bash查看nodejs版本nvmls-remote安装指定版本nvminstallv16.18.1......