js 统计数组中元素的重复次数
# 不用 reduce 时实现
统计一个数组中有多少个不重复的元素 以对象形式输出
let arr = ["a", "b", "c", "a", "a", "c"];
function getObjNum() {
let obj = {};
for (let i = 0, l = arr.length; i < l; i++) {
let item = arr[i];
obj[item] = (obj[item] + 1) || 1;
}
return obj;
}
console.log(getObjNum()); // 输出:{ a: 3, b: 1, c: 2 }
// 以数组形式输出
let object = getObjNum();
let newArr = [];
for (key in obj) {
newArr.push({
type: key,
count: obj[key]
})
};
console.log(getObjNum());
// 输出如下:
[
{ type: "a", count: 3 },
{ type: "b", count: 1 },
{ type: "c", count: 2 }
]
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
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
# 使用 reduce 时实现
统计一个数组中有多少个不重复的元素 以对象形式输出
let arr = ["a", "b", "c", "a", "a", "c"];
function getObjNum() {
return arr.reduce(function(prev,next){
prev[next] = (prev[next] + 1) || 1;
return prev;
},{});
}
console.log(getObjNum()); // 输出:{ a: 3, b: 1, c: 2 }
// 以数组形式输出
let object = getObjNum();
let newArr = [];
for (key in obj) {
newArr.push({
type: key,
count: obj[key]
})
};
console.log(getObjNum());
// 输出如下:
[
{ type: "a", count: 3 },
{ type: "b", count: 1 },
{ type: "c", count: 2 }
]
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
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
上次更新: 2024/01/30, 00:35:17
- 01
- linux 在没有 sudo 权限下安装 Ollama 框架12-23
- 02
- Express 与 vue3 使用 sse 实现消息推送(长连接)12-20