Chúng ta cần viết hàm JavaScript nhận vào hai mảng số và kiểm tra sự bằng nhau dựa trên hai điều kiện:
- Hai mảng bằng nhau nếu chứa cùng các phần tử (bỏ qua thứ tự).
- Hoặc nếu tổng các phần tử của hai mảng bằng nhau.
Ví dụ: [3,5,6,7,7] và [7,5,3,7,6] bằng nhau; [1,2,3,1,2] và [7,2] cũng bằng nhau (tổng bằng nhau); nhưng [3,4,2,5] và [2,3,1,4] không bằng nhau.
Dưới đây là mã:
Ví dụ
const first = [3, 5, 6, 7, 7]; const second = [7, 5, 3, 7, 6]; const isEqual = (first, second) => { const sumFirst = first.reduce((acc, val) => acc+val); const sumSecond = second.reduce((acc, val) => acc+val); if(sumFirst === sumSecond){ return true; }; const firstCopy = first.slice(); const secondCopy = second.slice(); for(let i = 0; i < firstCopy.length; i++){ const ind = secondCopy.indexOf(firstCopy[i]); if(ind === -1){ return false; }; secondCopy.splice(ind, 1); }; return true; }; console.log(isEqual(first, second));Kết quả
Đầu ra trong console sẽ là:
true