0%

如何仅返回数组中配对值的数量?

❓ 我想在数组中显示配对值的数量。 例如,我有这个数组:

1
[10,10,10,10,20,20,20,30,50]

我想显示3,因为我们有3对数字。 我怎样才能做到这一点?

1
2
3
4
5
6
7
8
9
10
11
12
13
function pairNumber(arr) {
var sorted_arr = arr.sort();
var i;
var results = [];
for (i = 0; i < sorted_arr.length; i++) {
if (sorted_arr[i + 1] == sorted_arr[i]) {
results.push(sorted_arr[i]);
}

}
return results.length;
}
console.log(pairNumber([10, 10, 10, 10, 20, 20, 20, 30, 50]))

✔️ 这是使用Set的另一种方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
function pairNumbers(arr) {
let count = 0;
const set = new Set();

for (let i = 0; i < arr.length; i++) {
if (set.has(arr[i])) {
count++;
set.delete(arr[i])
} else {
set.add(arr[i])
}
}

return count;
}
console.log(pairNumbers([10, 10, 10, 10, 20, 20, 20, 30, 50])) // 3