实例方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
const = list: [
{
"title": "年的时候,我看过一本书,名叫《影响力》,应该有不少学弟学妹也看过。",
"scale": 0,
"level": 0
},
{
"title": "但说实在的,这本书我就看了几页,就看不下去了,不是这书不好,而是我觉得它不适合我,因为我那时候没什么",
"scale": 4,
"level": 1
},
{
"title": "没有影响力的时候想着怎么扩大影响力,我就觉得有点扯淡。",
"scale": 6,
"level": 1
},
{
"title": "就像没有财的时候想着理财一样,有点白日做梦。",
"scale": 9,
"level": 2
},
{
"title": "与其白日做梦,不如脚踏实地,换一句浅显易懂的话,就是,与其想着理财,不如想想怎么攒钱。",
"scale": 10,
"level": 2
},
{
"title": "如果连原始资本都“攒”不住的话,“理”就无从谈起,对吧?",
"scale": 6,
"level": 1
}
]
const stat = list.reduce((i, o)=> {
const obj = i.find(item => item.level === o.level)
// 相同的level 统一存储到list 字段,可以算出相同的个数
if (obj) {
obj.list.push(o.scale)
} else {
o.list = [o.scale]
i.push(o)
}
// 相同的level 求出scale的总和
if (obj) {
obj.scale += o.scale
} else {
i.push(o)
}
return i
}, [])