Hướng dẫn get difference between two arrays javascript - nhận được sự khác biệt giữa hai mảng javascript

Để tìm sự khác biệt của 2 mảng mà không có bản sao:difference of 2 arrays without duplicates:

function difference(arr1, arr2){

  let setA = new Set(arr1);
  let differenceSet = new Set(arr2.filter(ele => !setA.has(ele)));
  return [...differenceSet ];

}

1 .________ 5 sẽ trở lại []

2 .________ 7 sẽ trở lại [4,5,6]

3 .________ 9 sẽ trở lại []

4 .________ 11 sẽ trở lại

function absDifference(arr1, arr2){

  const {larger, smaller} = arr1.length > arr2.length ? 
  {larger: arr1, smaller: arr2} : {larger: arr2, smaller: arr1}
  
  let setA = new Set(smaller);
  let absDifferenceSet = new Set(larger.filter(ele => !setA.has(ele)));
  return [...absDifferenceSet ];

}
2

Lưu ý: Giải pháp trên yêu cầu bạn luôn gửi mảng lớn hơn làm tham số thứ hai. Để tìm sự khác biệt tuyệt đối, trước tiên bạn sẽ cần tìm mảng lớn hơn của cả hai và sau đó làm việc trên chúng.

Để tìm sự khác biệt tuyệt đối của 2 mảng mà không có bản sao:absolute difference of 2 arrays without duplicates:

function absDifference(arr1, arr2){

  const {larger, smaller} = arr1.length > arr2.length ? 
  {larger: arr1, smaller: arr2} : {larger: arr2, smaller: arr1}
  
  let setA = new Set(smaller);
  let absDifferenceSet = new Set(larger.filter(ele => !setA.has(ele)));
  return [...absDifferenceSet ];

}

1 .________ 13 sẽ trở lại []

2 .________ 15 sẽ trở lại [4,5,6]

3 .________ 17 sẽ trở lại

function absDifference(arr1, arr2){

  const {larger, smaller} = arr1.length > arr2.length ? 
  {larger: arr1, smaller: arr2} : {larger: arr2, smaller: arr1}
  
  let setA = new Set(smaller);
  let absDifferenceSet = new Set(larger.filter(ele => !setA.has(ele)));
  return [...absDifferenceSet ];

}
2

4 .________ 19 sẽ trở lại

function absDifference(arr1, arr2){

  const {larger, smaller} = arr1.length > arr2.length ? 
  {larger: arr1, smaller: arr2} : {larger: arr2, smaller: arr1}
  
  let setA = new Set(smaller);
  let absDifferenceSet = new Set(larger.filter(ele => !setA.has(ele)));
  return [...absDifferenceSet ];

}
2

Lưu ý ví dụ 3 từ cả hai giải phápexample 3 from both the solutions

Nhận sự khác biệt giữa hai mảng #

Để có được sự khác biệt giữa hai mảng:

  1. Sử dụng phương thức

    Copied!

    const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
    1 để lặp qua mảng đầu tiên.
  2. Kiểm tra xem mỗi phần tử không được chứa trong mảng thứ hai.
  3. Lặp lại các bước, nhưng lần này lặp lại trên mảng thứ hai.

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));

Hàm chúng tôi chuyển đến phương thức mảng. Phương thức được gọi với từng phần tử trong mảng.

Trên mỗi lần lặp, chúng tôi kiểm tra xem phần tử không chứa trong mảng khác.

Phương thức

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
2 trả về một mảng chứa các phần tử thỏa mãn điều kiện, nói cách khác, các phần tử từ mảng thứ nhất không chứa trong mảng thứ hai.

Tuy nhiên, điều này không trả về sự khác biệt hoàn toàn giữa các mảng, bởi vì chúng tôi chỉ kiểm tra xem các phần tử từ mảng thứ nhất không có trong mảng thứ hai. Chúng tôi đã không kiểm tra xem các phần tử từ mảng thứ hai không có trong mảng thứ nhất.

Copied!

const arr1 = ['a', 'b']; const arr2 = ['a', 'b', 'c', 'd']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ [] console.log(getDifference(arr1, arr2));

Đây là cùng một mã, tuy nhiên chúng tôi đã chuyển các giá trị của các biến

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
3 và

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
4. Bây giờ

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
4 chứa 4 yếu tố.

Vì chúng tôi chỉ lặp lại trên

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
3, mà chỉ có các yếu tố ____27 cả hai đều có trong

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
4, phương thức trả về một mảng trống.

Thay vào đó, chúng tôi đã mong đợi giá trị trả lại là

Copied!

const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
9.

Để giải quyết vấn đề này, chúng ta cần gọi phương pháp

Copied!

const arr1 = ['a', 'b']; const arr2 = ['a', 'b', 'c', 'd']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ [] console.log(getDifference(arr1, arr2));
0 hai lần và kết hợp kết quả.

Copied!

const arr1 = ['a', 'b']; const arr2 = ['a', 'b', 'c', 'd']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } const difference = [ ...getDifference(arr1, arr2), ...getDifference(arr2, arr1) ]; console.log(difference); // 👉️ ['c', 'd']

Đây là những gì chúng tôi đã làm để có được điều này hoạt động:

  1. Gọi phương thức

    Copied!

    const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
    2 trên mảng đầu tiên và chỉ trả về các phần tử không có trong mảng thứ hai.
  2. Gọi phương thức

    Copied!

    const arr1 = ['a', 'b', 'c', 'd']; const arr2 = ['a', 'b']; function getDifference(a, b) { return a.filter(element => { return !b.includes(element); }); } // 👇️ ['c', 'd'] console.log(getDifference(arr1, arr2));
    2 trên mảng thứ hai và chỉ trả về các phần tử không có trong mảng thứ nhất.
  3. Chúng tôi đã kết hợp các kết quả từ hai mảng thành một mảng thứ ba, sử dụng cú pháp của toán tử (...).

Một cách dễ dàng để suy nghĩ về toán tử lây lan (...) là chúng tôi đang giải nén các giá trị của một mảng vào một mảng khác.

Bây giờ ví dụ của chúng tôi đã hoàn tất và trả về sự khác biệt giữa hai mảng.

Đọc thêm #

  • Nhận sự khác biệt giữa hai mảng đối tượng trong JavaScript
  • Kiểm tra xem thuộc tính đối tượng không được xác định trong JavaScript

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

Sử dụng các phương thức mảng.equals (Array1, Array2) - Phương thức này lặp lại trên từng giá trị của một mảng và so sánh bằng phương thức bằng. Sử dụng mảng. Phương thức Deepequals (Array1, Array2) - Phương thức này lặp lại trên từng giá trị của một mảng và so sánh sâu bằng bất kỳ phương thức nào được ghi đè. equals(array1, array2) methods − This method iterates over each value of an array and compare using equals method. Using Arrays. deepEquals(array1, array2) methods − This method iterates over each value of an array and deep compare using any overridden equals method.

Chúng ta có thể so sánh hai mảng trong JavaScript không?

Mặc dù JavaScript không có phương pháp sẵn có để so sánh trực tiếp hai mảng, nhưng nó có các phương pháp sẵn có để so sánh hai chuỗi.Chuỗi cũng có thể được so sánh bằng cách sử dụng toán tử bình đẳng.Do đó, chúng ta có thể chuyển đổi các mảng thành chuỗi, sử dụng phương thức mảng (), sau đó kiểm tra xem các chuỗi có bằng nhau không.JavaScript does not have an inbuilt method to directly compare two arrays, it does have inbuilt methods to compare two strings. Strings can also be compared using the equality operator. Therefore, we can convert the arrays to strings, using the Array join() method, and then check if the strings are equal.

Làm thế nào để bạn trả về sự khác biệt giữa hai mảng?

Để có được sự khác biệt giữa hai mảng của các đối tượng:..
Sử dụng phương thức Filter () để lặp qua mảng đầu tiên ..
Kiểm tra xem mỗi đối tượng không được chứa trong mảng thứ hai ..
Lặp lại các bước 1 và 2 cho mảng thứ hai ..
Concatenate kết quả để có được sự khác biệt hoàn toàn ..

Làm thế nào để bạn tìm thấy sự khác biệt giữa hai mảng trong TypeScript?

Để có được sự khác biệt giữa hai mảng trong TypeScript: sử dụng phương thức Filter () để lặp lại trong mảng thứ nhất. Hãy kiểm tra xem mỗi phần tử không được chứa trong mảng thứ hai. Lặp lại các bước, nhưng lần này lặp lại trên mảng thứ hai.Use the filter() method to iterate over the first array. Check if each element is not contained in the second array. Repeat the steps, but this time iterate over the second array.