资料处理#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 }})
除了使用if
、switch
之外
还能用什么方式让程式码更简短呢?
较进阶的写法
可以利用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()方式
如此一来,可以获得相同的结果
程式码也变得简短许多