So sánh nhiều mảng JavaScript

Để so sánh hai Mảng trong JavaScript, bạn nên kiểm tra xem cả hai mảng có giống nhau không, các đối tượng được trình bày trong mảng đó có cùng loại không và mỗi mục trong một mảng có tương đương với đối tượng trong mảng được so sánh không

Hướng dẫn này sẽ chỉ cho bạn một số cách so sánh hai mảng

Một trong những phương pháp là chuyển đổi cả hai chuỗi thành chuỗi JSON và so sánh các chuỗi với nhau để xác định đẳng thức. Phương thức dùng để chuyển đổi mảng thành chuỗi

So sánh nhiều mảng JavaScript
Javascript JSON. phương pháp xâu chuỗi

hãy để firstArr = [1, 2, [3, 4, 5]]; . stringify(firstArr) === JSON. stringify(secondArr); . nhật ký (isEqual);

Bạn cũng có thể gọi toString() để cắm một mảng số và chuỗi

So sánh nhiều mảng JavaScript
Phương thức Javascript toString

hãy để firstArr = [1, 2, 3, 4, 5]; . toString() === secondArr. toString(); . nhật ký (isEqual);

Một cách khác của giải pháp trên là Array. nguyên mẫu. every() để so sánh từng phần tử của mảng với các phần tử của mảng khác

So sánh nhiều mảng JavaScript
Javascript so sánh hai phần tử mảng

hãy để firstArr = [1, 2, 3, 4, 5]; . chiều dài === giâyArr. chiều dài && firstArr. every((value, index) => value === secondArr[index]); . nhật ký (isEqual);

Mảng là các đối tượng giống như danh sách và các phần tử của chúng là các thuộc tính có tên 0, 1, 2. vân vân. Chúng có những tính chất đặc biệt. chiều dài và nhiều hàm thao tác với các phần tử. Độ dài cũng như kiểu của các phần tử đều không cố định

Các mảng được lập chỉ mục bằng 0, nghĩa là phần tử đầu tiên ở chỉ mục 0 và chỉ mục của phần tử cuối cùng tương đương với giá trị của thuộc tính độ dài trừ đi 1

Tuy nhiên, chúng ta không thể sử dụng toán tử đẳng thức để so sánh các mảng. Lý do đằng sau điều này là mảng JavaScript là một loại đối tượng và các đối tượng được so sánh dựa trên các tham chiếu của các biến chứ không phải trên các giá trị

const mảng1 = [1, 2, 3];
const mảng2 = [1, 2, 3];

bảng điều khiển. log( array1 === array2); // false

bảng điều khiển. log( array1 == array2); // false

Trong đoạn mã trên, chúng tôi đã khởi tạo hai mảng giống nhau. Tuy nhiên, trong đầu ra, chúng ta sẽ thấy sai

So sánh nhiều mảng JavaScript

Do đó để giải quyết vấn đề này, trong bài đăng này, chúng ta sẽ tìm hiểu một số cách để so sánh hai mảng trong JavaScript

Phương pháp 1. toString()

Phương thức toString() là một phương thức có sẵn của JavaScript giúp chuyển đổi bất kỳ loại dữ liệu nào như số nguyên thành chuỗi và sau đó trả về số nguyên đó dưới dạng chuỗi. Chúng ta có thể áp dụng phương thức toString() trên một mảng, phương thức này sẽ chuyển đổi mảng thành một chuỗi và sau đó so sánh chuỗi này với chuỗi khác

const mảng1 = [1, 2, 3];
const mảng2 = [1, 2, 3];
const mảng3 = [4, 5, 6];
 
bảng điều khiển. log( array1. toString() == . toString()); // true
 
bảng điều khiển. log( array1. toString() === array3.toString()); // false

Trong đoạn mã trên, chúng tôi đã khởi tạo ba mảng và sau đó chúng tôi áp dụng phương thức toString() trên các mảng và trước tiên so sánh mảng1 với mảng2 và trả về kết quả trong bảng điều khiển. Theo cách tương tự, chúng tôi đã so sánh mảng1 với mảng3 và bảng điều khiển ghi lại kết quả

So sánh nhiều mảng JavaScript

Từ kết quả trên, chúng ta có thể thấy rằng “mảng1” bằng “mảng2” nhưng “mảng1” không bằng “mảng3”

Phương pháp 2. Sử dụng vòng lặp

Hãy để chúng tôi thực hiện một phương pháp khác trong đó chúng tôi sẽ kiểm tra thủ công các phần tử của hai mảng và sau đó tạo đầu ra. Với mục đích này, hãy để tôi chỉ cho bạn mã đầu tiên

hàm compareArrays () {
    const mảng1 = [1, 2, 3];
    const mảng2 = [4, 5, 6];
    // Trước tiên, hãy kiểm tra độ dài của cả hai mảng
    // nếu độ dài không bằng nhau thì các mảng khác nhau
    if( array1. độ dài. = mảng2. độ dài)
        return "Sai";
    khác {
        // kiểm tra mọi phần tử của hai mảng
        cho(var i =0;i<array1.độ dài; i ++)
            if( array1 [i]!= mảng2 [ i ])
              return "Sai";
            return "True";
        }
}
bảng điều khiển. log( so sánh Mảng ()); // false

Trong đoạn mã trên, chúng ta đã định nghĩa một hàm trong đó chúng ta khởi tạo hai mảng trước. Sau đó, chúng tôi đặt điều kiện để kiểm tra độ dài của các mảng

Nếu độ dài của hai mảng không bằng nhau thì điều đó có nghĩa là hai mảng khác nhau do đó hàm sẽ trả về false

Tuy nhiên, nếu độ dài bằng nhau thì chúng tôi đã đặt một vòng lặp for nơi chúng tôi sẽ kiểm tra mọi phần tử của cả hai mảng. Nếu thậm chí một phần tử không bằng nhau thì Sai sẽ được trả về. Nếu tất cả các phần tử của cả hai mảng được so khớp thì nó sẽ trả về true

Đầu ra của đoạn mã trên được hiển thị bên dưới

So sánh nhiều mảng JavaScript

Nếu chúng ta thay đổi mã một chút bằng cách cung cấp hai mảng bằng e. g

hàm compareArrays () {
    const mảng1 = [1, 2, 3];
    const mảng2 = [1, 2, 3];
    // Kiểm tra độ dài của cả hai mảng
    // nếu độ dài không bằng nhau thì các mảng khác nhau
    if( array1. độ dài. = mảng2. độ dài)
        return "Sai";
    khác {
        // kiểm tra mọi phần tử của hai mảng
        cho(var i =0;i<array1.độ dài; i ++)
            if( array1 [i]!= mảng2 [ i ])
              return "Sai";
            return "True";
        }
}
bảng điều khiển. log( so sánh Mảng ()); // true

Đầu ra sau đây sẽ được tạo ra

So sánh nhiều mảng JavaScript

Phần kết luận

Chúng ta không thể so sánh hai mảng trong JavaScript bằng toán tử đẳng thức == hoặc === vì mảng JavaScript là đối tượng và do đó tham chiếu được kiểm tra chứ không phải giá trị. Với mục đích này, chúng tôi đã xác định hai phương thức trong bài đăng này để so sánh các mảng. Trong phương thức đầu tiên, chúng tôi đã sử dụng phương thức tích hợp toString() trong đó trước tiên chúng tôi đã chuyển đổi các mảng thành chuỗi và sau đó kiểm tra hai chuỗi được trả về bằng toán tử đẳng thức. Trong phương pháp thứ hai, trước tiên chúng tôi kiểm tra độ dài theo cách thủ công và sau đó so sánh lần lượt tất cả các phần tử của hai mảng bằng cách sử dụng vòng lặp for

Làm cách nào để so sánh hai mảng khác nhau trong JavaScript?

Mặc dù JavaScript không có phương thức sẵn có để so sánh trực tiếp hai mảng, nhưng nó lại có phương thức sẵn có để so sánh hai chuỗi. Các chuỗi cũng có thể được so sánh bằng toán tử đẳng thức. Do đó, chúng ta có thể chuyển đổi mảng thành chuỗi, sử dụng phương thức Array join(), sau đó kiểm tra xem các chuỗi có bằng nhau không .

Làm thế nào để so sánh 2 mảng?

Làm cách nào để so sánh hai mảng trong Java? .
Chúng cùng loại
Chúng có số phần tử bằng nhau
Các cặp phần tử tương ứng trong cả hai mảng phải bằng nhau
Thứ tự các phần tử phải giống nhau
Hai tham chiếu mảng bằng nhau nếu chúng rỗng

Bạn có thể sử dụng == để so sánh các mảng không?

Sử dụng == trên mảng sẽ không cho kết quả mong muốn và nó sẽ so sánh chúng dưới dạng đối tượng .

Làm cách nào để so sánh hai mảng bằng forEach trong JavaScript?

Bước 1. Chúng ta cần khai báo hàm với hai tham số. hàm so sánh (mảng1, mảng2){}
Bước 2. Chúng ta cần khởi tạo một mảng trống. hàm so sánh (mảng1, mảng2){ const finalarray =[];
Bước 3. Chúng tôi đang nhờ sự trợ giúp của phương thức forEach trong Array. nguyên mẫu. cho mỗi(). .
Bước 4. Trả lại câu trả lời cuối cùng