Hợp nhất hai mảng có cùng chỉ mục (JavaScript)

Trong JavaScript, chúng ta có thể hợp nhất hai mảng theo các cách tiếp cận khác nhau và trong hướng dẫn này, chúng ta sẽ thấy một số cách tiếp cận để thực hiện việc này -

  1. Sử dụng phương thức Array concat()
  2. Sử dụng toán tử trải rộng
  3. Sử dụng phép lặp lặp

Sử dụng phương thức Array concat()

Phương thức Array concate() hợp nhất hai hoặc nhiều mảng. Đây là một trong những phương pháp tốt nhất để hợp nhất các mảng trong JavaScript. Phương thức này hoạt động trên một mảng, lấy một mảng khác trong các tham số và trả về một mảng mới sau khi hợp nhất hai mảng này. Nó cũng có thể lấy nhiều mảng trong các tham số để hợp nhất tất cả chúng

cú pháp

let merged_arr = arr1.concat(arr2)

Theo cú pháp trên, “arr1” và “arr2” là hai mảng riêng biệt. Chúng tôi đã sử dụng phương thức mảng concat() với “arr1” và chuyển mảng “arr2” vào tham số để tạo một mảng được hợp nhất mới, “mảng đã hợp nhất”

Thí dụ

Trong ví dụ bên dưới, chúng tôi hợp nhất hai mảng trong JavaScript bằng phương thức Array concat(). Chúng tôi đã sử dụng sự kiện bấm nút để hợp nhất hai mảng, “arr1” và “arr2” và xuất chúng trên trang web

Sử dụng toán tử lây lan

Toán tử trải rộng (. ) được sử dụng để chuyển hoặc trải một bản sao của từng phần tử của một mảng hoặc đối tượng có thể lặp lại. Nó rất hữu ích để sao chép một mảng dễ dàng. Chúng ta có thể hợp nhất hai mảng một cách dễ dàng bằng cách sử dụng toán tử trải rộng. Ta phải lấy một mảng rồi trong mảng đó rải lần lượt hai hoặc nhiều mảng, cách nhau bởi dấu phẩy

cú pháp

let merged_arr = [...arr1, ...arr2]

Theo cú pháp trên, “arr1” và “arr2” là hai mảng riêng biệt. Chúng tôi lấy một mảng “merged_arr” và bên trong mảng đó, chúng tôi sử dụng các toán tử trải rộng trên “arr1” và “arr2” để tạo một bản sao của tất cả các phần tử của chúng và chuyển chúng vào mảng mới

Thí dụ

Trong ví dụ bên dưới, chúng tôi đã hợp nhất hai mảng trong JavaScript bằng cách sử dụng toán tử trải rộng. Chúng tôi đã sử dụng sự kiện bấm nút để hợp nhất hai mảng, “arr1” và “arr2” và xuất chúng trên trang web

Sử dụng phép lặp lặp

Cách tiếp cận truyền thống nhất để hợp nhất hai mảng là sử dụng phép lặp. Trong cách tiếp cận này, chúng tôi sử dụng một vòng lặp như “vòng lặp for” hoặc “vòng lặp while” và bên trong vòng lặp, chúng tôi nối từng phần tử của một mảng vào một mảng khác bằng cách sử dụng mảng. đẩy() phương pháp

cú pháp

let merged_arr = []
for (let index = 0; index < arr1.length; index++) {
   merged_arr.push(arr1[index])
}
for (let index = 0; index < arr2.length; index++) {
   merged_arr.push(arr2[index])
}

Theo cú pháp trên, “arr1” và “arr2” là hai mảng riêng biệt. Sử dụng vòng lặp for, chúng tôi đã hợp nhất hai mảng thành “merged_arr”

Thí dụ

Trong ví dụ dưới đây, chúng tôi đã hợp nhất hai mảng trong JavaScript bằng cách sử dụng phép lặp. Chúng tôi đã sử dụng sự kiện bấm nút để hợp nhất hai mảng, “arr1” và “arr2” và xuất chúng trên trang web

Trong hướng dẫn này, chúng ta đã thảo luận về ba cách tiếp cận để hợp nhất hai mảng trong JavaScript- sử dụng phương thức concate(), sử dụng toán tử trải rộng và sử dụng phép lặp vòng lặp

Nhiệm vụ là hợp nhất chỉ mục đầu tiên của một mảng với chỉ mục đầu tiên của mảng khác. Giả sử, một mảng là mảng1 = {a, b, c} và một mảng khác là mảng2 = {c, d, e} nếu ta thực hiện tác vụ trên các mảng này thì kết quả sẽ là

result array
    { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

Hợp nhất hai mảng có cùng chỉ mục (JavaScript)

Hầu hết mọi người nghĩ rằng hàm array_merge() có thể giải quyết yêu cầu trên, đoạn mã sau cho thấy đây không phải là cách để đạt được yêu cầu đó.  

ví dụ 1. Sử dụng hàm array_merge() sẽ cho bạn kết quả mong muốn

php




    $array1=array(

array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

0_______4_______1
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

2
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

1
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

4_______4_______5

    

array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

7=array(
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

4
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

1
array(3) { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

3
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

1
array(3) { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

5
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

5

    

array(3) { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

8=
array(2) { 
    [0]=> array(2) 
        { 
        [0]=> array(2) 
            { 
            [0]=> string(1) "a" 
            [1]=> string(1) "b" 
            } 
        [1]=> array(2) 
            { 
            [0]=> string(1) "z" 
            [1]=> string(1) "y" 
            } 
        } 
    [1]=> array(2) 
        {
        [0]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "d" 
            } 
        [1]=> array(2) 
            { 
            [0]=> string(1) "x" 
            [1]=> string(1) "w" 
            } 
        } 
    }

0($array14_______1
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

7
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

5

    

array(2) { 
    [0]=> array(2) 
        { 
        [0]=> array(2) 
            { 
            [0]=> string(1) "a" 
            [1]=> string(1) "b" 
            } 
        [1]=> array(2) 
            { 
            [0]=> string(1) "z" 
            [1]=> string(1) "y" 
            } 
        } 
    [1]=> array(2) 
        {
        [0]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "d" 
            } 
        [1]=> array(2) 
            { 
            [0]=> string(1) "x" 
            [1]=> string(1) "w" 
            } 
        } 
    }

7_______13_______8
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

5

0

đầu ra.  

array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

Để kết hợp hai mảng theo chỉ số, chúng ta phải lặp qua chúng và hợp nhất khi chúng ta thực hiện. Sao cho chỉ mục đầu tiên của mảng thứ nhất và thứ hai cùng nhau tạo thành chỉ mục đầu tiên của mảng kết quả

ví dụ 2. Chương trình gộp 2 mảng đơn giản

php




    $array1=array(

array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

0_______4_______1
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

2
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

1
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

4_______4_______5

    

array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

7=array(
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

4
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

1
array(3) { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

3
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

1
array(3) { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

5
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

5

    

array(3) { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

8=array$array18

    =0_______49_______$array1 =3 =4=5=6 =7

=8=9=4_______7array2=4array4

=8

array(3) { 
    [0]=> array(2) 
        { 
        [0]=> string(1) "a" 
        [1]=> string(1) "c" 
        } 
    [1]=> array(2) 
        { 
        [0]=> string(1) "b" 
        [1]=> string(1) "d" 
        } 
    [2]=> array(2) 
            { 
            [0]=> string(1) "c" 
            [1]=> string(1) "e" 
            } 
    }

8array2=4array9array49_______47_______6
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

1=9
array(6) { [0]=> string(1) "a" 
           [1]=> string(1) "b" 
           [2]=> string(1) "c" 
           [3]=> string(1) "c" 
           [4]=> string(1) "d" 
           [5]=> string(1) "e" 
         }

5

Làm cách nào để hợp nhất hai mảng với chỉ mục trong JavaScript?

Bạn có thể sử dụng toán tử trải phổ [. mảng1,. array2] hoặc một cách chức năng []. concat(array1, array2) để hợp nhất 2 hoặc nhiều mảng.

Làm cách nào để kết hợp hai mảng thành một mảng trong JavaScript?

Phương thức concat() nối (nối) hai hoặc nhiều mảng. Phương thức concat() trả về một mảng mới, chứa các mảng đã nối.

Làm cách nào để hợp nhất hai mảng đối tượng trong JavaScript?

Để hợp nhất các phần tử từ mảng này sang mảng khác, trước tiên chúng ta phải lặp (lặp) qua tất cả các phần tử của mảng. Trong vòng lặp, chúng ta sẽ lấy từng phần tử từ một mảng và chèn (dùng phương thức push() của mảng) vào một mảng khác. Bây giờ, chúng ta có thể gọi hàm merge() và chuyển hai mảng làm đối số để hợp nhất

Làm cách nào để hợp nhất hai mảng trong JavaScript mà không trùng lặp?

Sử dụng ES5, chúng ta có thể hợp nhất hai mảng đầu vào mà không xóa các mảng trùng lặp với. concat() rồi lặp lại qua mảng kết quả và loại bỏ các bản sao bằng cách sử dụng indexOf .