So sánh hai mảng javascript es6
Trước tiên, trong đoạn mã trên, chúng tôi đang xâu chuỗi mảng1 với phương thức forEach() trả lại cho chúng tôi từng phần tử trong mảng1 ở cuối, chúng tôi sẽ trả về chuỗi mảng thứ hai với phương thức forEach() nó trả lại cho chúng tôi các phần tử trong mảng thứ hai, sau đó là e2 . Nếu điều gì đó đúng, chúng tôi bắt đầu nhập vào khối if Show
Xin chào các bạn, hôm nay tôi mang đến cho các bạn một số phép thuật ES6 cho các thuật toán Array phổ biến mà đôi khi chúng ta nghĩ quá nhiều và chúng có một giải pháp đơn giản thực sự dễ dàng bằng cách sử dụng các hàm bậc cao như bộ lọc và lý thuyết Tập hợp Lý thuyết tập hợp là gì trên thế giới? . Chúng tôi không đề cập đến các phương thức giống nhau cho Bộ Javascript (Mảng và Bộ là các cấu trúc dữ liệu khác nhau, bạn có thể xem bài viết này để hiểu rõ hơn https. //vừa phải. com/front-end-hacking/es6-set-vs-array-what-and-when-efc055655e1a) nhưng vì Mảng là tập hợp dữ liệu đồng nhất nên sẽ có cùng nguyên tắc Trong bài viết này, bạn sẽ học cách triển khai các tính năng này Mã sốĐối với tất cả các ví dụ, chúng tôi có hai mảng, A let difference = arrA.filter(x => !arrB.includes(x)); 1 & let difference = arrA.filter(x => !arrB.includes(x)); 2, chúng tôi cần một mảng thứ ba gọi là C với kết quả của hoạt động. Hãy sử dụng một số Biểu đồ Venn để giúp chúng ta hình dung các khái niệmNgã tưPhần giao nhau sẽ cho chúng ta các phần tử mà cả hai mảng có chung, trong trường hợp này, kết quả phải là let difference = arrA.filter(x => !arrB.includes(x)); 3let intersection = arrA.filter(x => arrB.includes(x)); Sự khác biệtSự khác biệt sẽ xuất ra các phần tử từ mảng A không có trong mảng B. Kết quả sẽ là let difference = arrA.filter(x => !arrB.includes(x)); 4let difference = arrA.filter(x => !arrB.includes(x)); Chênh lệch đối xứngTrong trường hợp này, bạn sẽ nhận được một mảng chứa tất cả các phần tử của mảng A không có trong mảng B và ngược lại, vì vậy kết quả sẽ là let difference = arrA.filter(x => !arrB.includes(x)); 0let difference = arrA liên hiệpPhép hợp phải là đơn giản nhất trong số chúng, cuối cùng, kết quả phải là tất cả các phần tử từ A, tất cả từ B hoặc cả hai như thế này let difference = arrA.filter(x => !arrB.includes(x)); 1let union = [...arrA, ...arrB]; Tuy nhiên, có một vấn đề là nếu chúng ta sử dụng toán tử trải rộng, chúng ta sẽ nhận được các phần tử trùng lặp, vì vậy về mặt lý thuyết, đó không phải là một phép hợp. Để làm điều này, chúng tôi có thể sử dụng Bộ để giúp chúng tôi let union = [...new Set([...arrA, ...arrB)]; Tại sao? . Vì vậy, bạn sẽ không có bản sao mà sẽ phải sử dụng Set Object Vì vậy, ngay bây giờ, ES6 thuần vanilla có thể cạnh tranh trực tiếp với các triển khai khác như jQuery, lodash hoặc gạch dưới và bạn có thể giảm mã từ các triển khai này function symmetricDifference(a1, a2) { đến một hoặc hai dòng hoặc mã. Khá hữu ích Uh? Nếu bạn có câu hỏi hoặc ý tưởng khác để giải quyết vấn đề của Liên minh, hãy cho tôi biết trong phần nhận xét, bia và sao cho tất cả Trong bài viết này, chúng ta sẽ tìm hiểu cách so sánh hai mảng chỉ bằng một dòng mã trong JavaScript. Đây là đoạn mã JavaScript một dòng sử dụng một trong những tính năng phổ biến nhất của ES6 => let difference = arrA.filter(x => !arrB.includes(x)); 5Hãy xác định chức năng ngắn này ________số 8Tham số let difference = arrA.filter(x => !arrB.includes(x)); 6 và let difference = arrA.filter(x => !arrB.includes(x)); 7 là mảng Mảng là đối tượng trong JavaScript, do đó, toán tử ba bằng let difference = arrA.filter(x => !arrB.includes(x)); 8 chỉ trả về let difference = arrA.filter(x => !arrB.includes(x)); 9 nếu các mảng có cùng tham chiếuLàm thế nào để bạn so sánh xem hai mảng có bằng nhau không? . thông số JavaScript xác định 4 cách khác nhau để kiểm tra xem hai giá trị có "bằng nhau" hay không và điều đó không tính đến sự bình đẳng sâu sắc giữa các đối tượng Trong những trường hợp như thế này, bạn nên trình bày rõ ràng nhất có thể về ý nghĩa của cụm từ "bình đẳng". " Trong công nghệ phần mềm, đặt câu hỏi đúng cách thường làm cho câu trả lời trở nên rõ ràng Với ý nghĩ đó, đây là 3 định nghĩa về đẳng thức cho mảng và cách kiểm tra chúng Cùng chiều dài, mỗi giá trị bằng nhauMột cách tiếp cận để so sánh let difference = arrA.filter(x => !arrB.includes(x)); 6 và let difference = arrA.filter(x => !arrB.includes(x)); 7 là kiểm tra xem mỗi giá trị của let difference = arrA.filter(x => !arrB.includes(x)); 6 có hoàn toàn bằng với giá trị tương ứng của let difference = arrA.filter(x => !arrB.includes(x)); 7 hay không. Điều này hoạt động tốt nếu tất cả các phần tử của mảng là nguyên thủy trái ngược với các đối tượngBình đẳng sâu sắc với POJOHàm let difference = arrA.filter(x => !arrB.includes(x)); 4 trước hoạt động rất tốt đối với các giá trị nguyên thủy, nhưng không phù hợp nếu bạn muốn so sánh các đối tượng theo giá trịMột cách gọn gàng để tính đến các giá trị đối tượng là so sánh các mảng theo đầu ra let difference = arrA.filter(x => !arrB.includes(x)); 5 của chúngCách tiếp cận này rất tiện lợi vì nó yêu cầu mã tối thiểu và không có thư viện bên ngoài. Tuy nhiên, việc so sánh đầu ra của let difference = arrA.filter(x => !arrB.includes(x)); 5 có một trường hợp cạnh không may có thể là một vấn đề tùy thuộc vào trường hợp sử dụng của bạn. Vì let difference = arrA.filter(x => !arrB.includes(x)); 80 không phải là một giá trị JSON hợp lệ, các mảng bên dưới có cùng đầu ra let difference = arrA.filter(x => !arrB.includes(x)); 5, vì let difference = arrA.filter(x => !arrB.includes(x)); 5 chuyển đổi let difference = arrA.filter(x => !arrB.includes(x)); 80 thành let difference = arrA.filter(x => !arrB.includes(x)); 84let difference = arrA.filter(x => !arrB.includes(x)); 0Sử dụng let difference = arrA.filter(x => !arrB.includes(x));85 của LodashNgoài câu hỏi khó hiểu về let difference = arrA.filter(x => !arrB.includes(x)); 84 so với let difference = arrA.filter(x => !arrB.includes(x)); 80, việc so sánh đầu ra của let difference = arrA.filter(x => !arrB.includes(x)); 5 cũng không tính đến các loại đối tượng. Đối với let difference = arrA.filter(x => !arrB.includes(x)); 5, một đối tượng có hàm let difference = arrA.filter(x => !arrB.includes(x)); 90 trả về 42 cũng giống như số 42Tương tự, một đối tượng tùy chỉnh giống như một POJO Mặt khác, hàm let difference = arrA.filter(x => !arrB.includes(x)); 85 của Lodash tính đến tất cả những điều nàyHàm let difference = arrA.filter(x => !arrB.includes(x)); 85 của Lodash là cách tốt nhất nếu bạn cần tất cả chuông và còi để kiểm tra xem các đối tượng có cùng lớp không. Cách tiếp cận let difference = arrA.filter(x => !arrB.includes(x)); 5 hoạt động tốt đối với POJO, chỉ cần đảm bảo rằng bạn tính đến let difference = arrA.filter(x => !arrB.includes(x)); 84 và chỉ sử dụng nó với dữ liệu đáng tin cậy - let difference = arrA.filter(x => !arrB.includes(x)); 90 có thể là một lỗ hổng bảo mật
Bạn có thể so sánh hai mảng trong JavaScript không?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 JavaScript 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 các 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.
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 .
Chúng ta có thể so sánh trực tiếp hai mảng không?Trong Java, chúng ta có thể so sánh hai mảng bằng cách so sánh từng phần tử của mảng . Lớp Java Arrays cung cấp hai phương thức được xác định trước được sử dụng để so sánh hai mảng trong Java. Trong phần này, chúng ta sẽ tìm hiểu cách so sánh hai Mảng bằng Arrays. phương thức equals() và Mảng.
Tôi có thể đánh đồng hai mảng không?Hai mảng được gọi là bằng nhau nếu. cả hai đều chứa cùng một tập hợp các phần tử, cách sắp xếp (hoặc hoán vị) của các phần tử có thể/có thể không giống nhau . Nếu có lặp lại thì số phần tử lặp lại cũng phải bằng nhau thì hai mảng mới bằng nhau. |