Chúng tôi được yêu cầu viết một hàm JavaScript có hai mảng Số, giả sử đầu tiên và thứ hai và kiểm tra sự bình đẳng của chúng.
Sự bình đẳng trong trường hợp của chúng tôi sẽ được xác định bởi một trong hai điều kiện sau -
-
Các mảng bằng nhau nếu chúng chứa các phần tử giống nhau bất kể thứ tự của chúng.
-
Nếu tổng tất cả các phần tử của mảng thứ nhất và mảng thứ hai bằng nhau.
Ví dụ -
[3, 5, 6, 7, 7] and [7, 5, 3, 7, 6] are equal arrays [1, 2, 3, 1, 2] and [7, 2] are also equal arrays but [3, 4, 2, 5] and [2, 3, 1, 4] are not equal
Hãy viết mã cho chức năng này -
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; }; // do this if you dont want to mutate the original arrays otherwise use first and second 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));
Đầu ra
Đầu ra trong bảng điều khiển sẽ là -
true