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

Lọc giá trị mảng duy nhất và cộng dồn trong JavaScript

Giả sử chúng ta có mảng các mảng như sau:

const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]];

Chúng ta viết hàm nhận vào mảng này. Tất cả mảng con có chính xác ba phần tử.

Hàm lọc bỏ mảng con có giá trị đầu tiên trùng lặp. Ngoài ra, cho mảng con bị loại, cộng phần tử thứ ba vào đối ứng mảng con không trùng.

Kết quả mong đợi:

const output = [[12345, "product", "25"],[1234567, "other", "10"]];

Ví dụ

Mã thực hiện:

const arr = [[12345, "product", "10"],[12345, "product", "15"],[1234567, "other", "10"]]; 
const addSimilar = (arr = []) => { 
  const res = []; 
  const map = {}; 
  arr.forEach(el => { 
    const [id, name, amount] = el; 
    if(map.hasOwnProperty(id)){ 
      const newAmount = +amount + +res[map[id] - 1][2]; 
      res[map[id] - 1][2] = '' + newAmount; 
    }else{ 
      map[id] = res.push(el); 
    } 
  }); 
  return res; 
} 
console.log(addSimilar(arr));

Kết quả

Kết quả in ra console:

[ [ 12345, 'product', '25' ], [ 1234567, 'other', '10' ] ]