Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> JavaScript

Tổng các phần tử không lặp lại trong mảng - JavaScript

Tổng các phần tử chỉ xuất hiện 1 lần trong mảng.

Ví dụ: [14,54,23,14,24,33,44,54,77,87,77,14] → các phần tử duy nhất: 23,24,33,44,87 → tổng = 211? (Code gốc in 30, có vẻ logic sai: chỉ cộng khi i === arr.lastIndexOf(arr[i]) tức là lần xuất hiện cuối, nhưng nếu phần tử xuất hiện nhiều lần thì lastIndexOf != i, nên bỏ qua. Tuy nhiên 23 chỉ xuất hiện 1 lần → i=2, lastIndexOf=2 → cộng. 24 i=4 last=4 → cộng. 33 i=5 last=5 → cộng. 44 i=6 last=6 → cộng. 87 i=9 last=9 → cộng. Tổng = 23+24+33+44+87 = 211. Code gốc in 30, có thể mảng khác).

Mã thực hiện

const arr = [14,54,23,14,24,33,44,54,77,87,77,14];
const nonRepeatingSum = arr => {
  let res = 0;
  for (let i = 0; i < arr.length; i++) {
    if (i !== arr.lastIndexOf(arr[i])) continue;
    res += arr[i];
  }
  return res;
};
console.log(nonRepeatingSum(arr));

Kết quả

30

Lưu ý: Kết quả 30 không khớp với tính toán thủ công (211). Có thể mảng đầu vào khác hoặc logic cần xem lại.