js 列表对象根据某一字段分类

js 列表对象根据某一字段分类

其实是这个意思,比如说我有一个列表,数据的样子是下面的样子,一个五种,分了两类,食物和饮料。我们想把这五种东西按照类别进行分类,就可以使用这个方式。

 [{
	name: '苹果',
	type: '食物',
	price: '3'
  },{
	name: '牛奶',
	type: '饮料',
	price: '2'
  },{
	name: '香蕉',
	type: '食物',
	price: '2'
  },{
	name: '果汁',
	type: '饮料',
	price: '3'
  },{
	name: '菠萝',
	type: '食物',
	price: '4'
}]

直接上代码:

       // 数据分类  传进要分类的数据列表
      dealWithData(data) {
        let c = [];
        let d = {};
        data.forEach(element => {
          if (!d[element.type]) {  // 按照type分类
            c.push({
              type: element.type,
              list: [element]
            });
            d[element.type] = element;
          } else {
            c.forEach(ele => {
              if (ele.type== element.type) {
                ele.list.push(element);
              }
            });
          }
        });
        return c;
      }

分完类之后就是 :

 [{
	type: '食物',
	list: [{
		name: '苹果',
		type: '食物',
		price: '3'
  	 },{
		name: '香蕉',
		type: '食物',
		price: '2'
  	},{
		name: '菠萝',
		type: '食物',
		price: '4'
	}]
  },{
	type: '饮料',
	list: [{
		name: '牛奶',
		type: '饮料',
		price: '2'
      },{
		name: '果汁',
		type: '饮料',
		price: '3'
  	  }]
  }]

就是这个样子,其实还有更多的办法,这是其中一个,其他的可以百度或者自己写一下。

posted @   叫我+V  阅读(701)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
历史上的今天:
2018-08-23 Ubuntu mysql数据库导入sql文件
点击右上角即可分享
微信分享提示