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

Hợp nhất và sửa các mảng trong JavaScript

Vấn đề

Chúng tôi được yêu cầu viết một hàm JavaScript có hai mảng số, arr1 vàarr2, làm đối số thứ nhất và thứ hai.

Hàm của chúng ta nên hợp nhất các phần tử của cả hai mảng này thành một mảng mới và nếu sau khi hợp nhất hoặc trước khi hợp nhất có tồn tại bất kỳ bản sao nào, chúng ta nên xóa phần trùng lặp dư thừa mà chỉ một bản sao của mỗi phần tử có trong mảng đã hợp nhất.

Thứ tự ở đây không quá quan trọng nhưng tần suất của các phần tử (phải là 1 cho phần tử riêng) mới là quan trọng.

Ví dụ:nếu đầu vào của hàm là -

onst arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];

Sau đó, kết quả đầu ra phải là -

const output = [6, 5, 2, 1, 8, 3, 4, 9];

Ví dụ

Sau đây là mã -

const arr1 = [6, 5, 2, 1, 8];
const arr2 = [3, 4, 6, 8, 9];
const mergeAndRectify = (arr1 = [], arr2) => {
   const { length: len1 } = arr1;
   const { length: len2 } = arr2;
   const res = [];
   let curr = 0;
   for(let i = 0; i < len1+len2; i++){
      if(i >= len1){
         curr = i - len1;
         if(!res.includes(arr1[curr])){
            res.push(arr1[curr]);
         };
      }else{
         curr = i;
         if(!res.includes(arr2[curr])){
            res.push(arr2[curr]);
         };
      };
   };
   return res;
};
console.log(mergeAndRectify(arr1, arr2));

Đầu ra

Sau đây là đầu ra của bảng điều khiển -

[ 3, 4, 6, 8, 9, 5, 2, 1 ]