Javascript 将资料进行分类方法

资料处理#1

以下的资料内容内
希望能够根据type
将资料分成三大类
我们可以怎么做呢?

data:[    { id: 'one', type: 0 },    { id: 'two', type: 0 },    { id: 'three', type: 2 },    { id: 'four', type: 1 },    { id: 'five', type: 2 },    { id: 'six', type: 0 },    { id: 'seven', type: 0 },    { id: 'eight', type: 1 },    { id: 'nine', type: 2 },    { id: 'ten', type: 1 },]

需要进行判断的情况下
通常最简单的方式就是使用
if 或是switch

let typeOneList = []let typeTwoList = []let typeThreeList = []data.forEach(item => {    switch (item.type) {      case 0:        typOneList.push(item)        break      case 1:        typeTwoList.push(item)        break      case 2:        typeThreeList.push(item)        break    }})

除了使用ifswitch之外
还能用什么方式让程式码更简短呢?

较进阶的写法

可以利用type的资料当作index值
来区分object的keys后 塞入该笔资料

let result = {}let keys = ['type1', 'type2', 'type3']data.forEach(item => {    const originData = result[keys[item.type]] || []    result[keys[item.type]] = [...list, item]})[...list, item]用法就像是直接使list.push()方式

如此一来,可以获得相同的结果
程式码也变得简短许多


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章