Confronta due array in JavaScript

Rupam Yadav 12 ottobre 2023
  1. Array.prototype.equals per confrontare due array in JavaScript
  2. JSON.stringify() per confrontare gli array in JavaScript
  3. Confronta due array in JavaScript utilizzando i loop
Confronta due array in JavaScript

Questo tutorial introduce tre modi per confrontare gli array in JavaScript. Esistono diversi modi per eseguire questa operazione, ma le prestazioni possono variare.

Array.prototype.equals per confrontare due array in JavaScript

JavaScript ci fornisce la capacità di aggiungere nuove proprietà e metodi alle classi esistenti. Possiamo usare Array.prototype per aggiungere il nostro metodo personalizzato equals nell’oggetto Array.

Nell’esempio seguente, controlleremo prima la lunghezza di entrambi gli array e quindi confronteremo ogni elemento. Stiamo anche controllando se a1 e a2 sono istanze Array perché se non lo sono, non sono identiche. Infine, usiamo il metodo per confrontare il primo array con il secondo per a1.equals(a2).

Esempio:

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));

Produzione:

Comparing a1 and a2 true
Comparing a1 and a3 false

JSON.stringify() per confrontare gli array in JavaScript

Un’altra tecnica per confrontare due array consiste nel lanciarli prima nel tipo di stringa e poi confrontarli. JSON viene utilizzato per trasferire dati da/verso un server web, ma qui possiamo utilizzare il suo metodo. Possiamo farlo utilizzando JSON.stringify() che converte un Array in una stringa. Poiché ora sia a1 che a2 sono stringhe, possiamo usare === per vedere se sono uguali o meno.

Esempio:

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));

Produzione:

Comparing a1 and a2 true
Comparing a1 and a3 false

Confronta due array in JavaScript utilizzando i loop

Il looping è il modo più tradizionale di confrontare gli array in JavaScript perché implica il looping degli array e quindi il confronto di ogni singolo elemento tra loro per verificare se corrispondono.

Per renderlo più pulito, possiamo usare le funzioni e quindi restituire booleano come risultato.

Esempio:

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));

Produzione:

Comparing a1 and a2 true
Comparing a1 and a3 false
Autore: 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

Articolo correlato - JavaScript Array