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

Sự bình đẳng của hai mảng JavaScript

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