Computer >> Máy Tính >  >> Lập trình >> Javascript

Tính tổng tất cả các giá trị duy nhất của một mảng - JavaScript

Giả sử, chúng tôi bắt buộc phải viết một hàm JavaScript nhận vào một mảng số với các mục nhập trùng lặp và tổng tất cả các mục nhập trùng lặp vào một chỉ mục.

Ví dụ -

Nếu mảng đầu vào là -

const input = [1, 3, 1, 3, 5, 7, 5, 4];

Sau đó, đầu ra phải là -

const output = [2, 6, 7, 10, 4];

Điều đó có nghĩa là tất cả những cái trùng lặp được cộng lại thành chỉ mục 0 và tất cả những thứ trùng lặp được tổng hợp thành chỉ mục 1, v.v.

Ví dụ

Sau đây là mã -

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

Điều này sẽ tạo ra kết quả sau trong bảng điều khiển -

[ 2, 6, 10, 7, 4 ]