JavaScript에서 두 배열 비교

Rupam Yadav 2023년10월12일
  1. JavaScript에서 두 배열을 비교하는Array.prototype.equals
  2. JavaScript에서 배열을 비교하기위한JSON.stringify()
  3. 루프를 사용하여 JavaScript에서 두 배열 비교
JavaScript에서 두 배열 비교

이 자습서에서는 JavaScript에서 배열을 비교하는 세 가지 방법을 소개합니다. 이를 수행하는 방법은 여러 가지가 있지만 성능은 다를 수 있습니다.

JavaScript에서 두 배열을 비교하는Array.prototype.equals

JavaScript는 기존 클래스에 새 속성과 메서드를 추가하는 기능을 제공합니다. Array.prototype을 사용하여 사용자 정의 메소드equals를 Array 객체에 추가 할 수 있습니다.

아래 예에서는 먼저 두 배열의 길이를 확인한 다음 각 항목을 비교합니다. a1a2Array 인스턴스인지 확인하고 있습니다. 그렇지 않으면 동일하지 않기 때문입니다. 마지막으로, 우리는a1.equals(a2)로 첫 번째 배열과 두 번째 배열을 비교하는 방법을 사용합니다.

예:

var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];

Array.prototype.equals = function(getArray) {
  if (this.length != getArray.length) return false;

  for (var i = 0; i < getArray.length; i++) {
    if (this[i] instanceof Array && getArray[i] instanceof Array) {
      if (!this[i].equals(getArray[i])) return false;
    } else if (this[i] != getArray[i]) {
      return false;
    }
  }
  return true;
};

console.log('Comparing a1 and a2', a1.equals(a2));
console.log('Comparing a1 and a3', a1.equals(a3));

출력:

Comparing a1 and a2 true
Comparing a1 and a3 false

JavaScript에서 배열을 비교하기위한JSON.stringify()

두 배열을 비교하는 또 다른 기술은 먼저 문자열 유형으로 캐스트 한 다음 비교하는 것입니다. JSON은 웹 서버와 데이터를주고받는 데 사용되지만 여기서는 그 방법을 사용할 수 있습니다. Arraystring으로 변환하는JSON.stringify()를 사용하면됩니다. 이제a1a2는 모두 문자열이므로===를 사용하여 동일한 지 여부를 확인할 수 있습니다.

예:

var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];

console.log('Comparing a1 and a2', JSON.stringify(a1) === JSON.stringify(a2));
console.log('Comparing a1 and a3', JSON.stringify(a1) === JSON.stringify(a3));

출력:

Comparing a1 and a2 true
Comparing a1 and a3 false

루프를 사용하여 JavaScript에서 두 배열 비교

반복은 배열을 반복 한 다음 모든 단일 요소를 서로 비교하여 일치하는지 확인하기 때문에 JavaScript에서 배열을 비교하는 가장 전통적인 방법입니다.

더 깔끔하게 만들기 위해 함수를 사용한 다음 결과로 boolean을 반환 할 수 있습니다.

예:

var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];

const getResult = function(a1, a2) {
  var i = a1.length;
  if (i != a2.length) return false;

  while (i--) {
    if (a1[i] !== a2[i]) return false;
  }
  return true;
};

console.log('Comparing a1 and a2', getResult(a1, a2));
console.log('Comparing a1 and a3', getResult(a1, a3));

출력:

Comparing a1 and a2 true
Comparing a1 and a3 false
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn

관련 문장 - JavaScript Array