Tìm tổng các phần tử duy nhất trong JavaScript
Chúng ta cần viết một hàm JavaScript nhận vào một mảng số có các mục trùng lặp và cộng tổng tất cả các mục trùng lặp vào một chỉ số.
Ví dụ: Nếu mảng đầu vào là:
const input = [1, 3, 1, 3, 5, 7, 5, 4];
Đầu ra
Thì kết quả đầu ra nên là:
const output = [2, 6, 7, 10, 4];
// tất cả các 1 trùng lặp được cộng vào chỉ số 0
// tất cả các 3 trùng lặp được cộng vào chỉ số 1, v.v.
Do đó, hãy viết mã cho hàm này:
Ví dụ
Mã thực hiện như sau:
const input = [1, 3, 1, 3, 5, 7, 5, 4];
const mergeDuplicates = arr => {
const map = arr.reduce((acc, val) => {
if(acc.has(val)){
acc.set(val, acc.get(val) + 1);
}else{
acc.set(val, 1);
};
return acc;
}, new Map());
return Array.from(map, el => el[0] * el[1]);
};
console.log(mergeDuplicates(input));
Đầu ra
Kết quả trong console sẽ là:
[ 2, 6, 10, 7, 4 ]