In JavaScript Array e oggetti sono in realtà molto simili, anche se all'esterno possono sembrare un po 'diversi.
Per un array:
var array = [];
array[0] = "hello";
array[1] = 5498;
array[536] = new Date();
Come si può vedere gli array in JavaScript possono essere sparse (indicies validi non devono essere consecutivi) e possono contenere qualsiasi tipo di variabile! È abbastanza conveniente.
Ma come tutti sappiamo JavaScript è strano, quindi ecco alcuni pezzi strani:
array["0"] === "hello"; // This is true
array["hi"]; // undefined
array["hi"] = "weird"; // works but does not save any data to array
array["hi"]; // still undefined!
Questo è perché tutto in JavaScript è un oggetto (che è il motivo per cui è anche possibile creare un array usando new Array()
). Di conseguenza, ogni indice in una matrice viene trasformato in una stringa e quindi archiviato in un oggetto, quindi un array è solo un oggetto che non consente a nessuno di memorizzare nulla con una chiave che non è un numero intero positivo.
Quindi cosa sono gli oggetti?
Gli oggetti in JavaScript sono come matrici ma l'"indice" può essere qualsiasi stringa.
var object = {};
object[0] = "hello"; // OK
object["hi"] = "not weird"; // OK
Si può anche scegliere di non utilizzare le parentesi quadre quando si lavora con gli oggetti!
console.log(object.hi); // Prints 'not weird'
object.hi = "overwriting 'not weird'";
Si può andare anche oltre e definire gli oggetti in questo modo:
var newObject = {
a: 2,
};
newObject.a === 2; // true
fonte
2015-11-04 06:38:35
'var a = {};' è un oggetto coppie-_key-VALUE_. 'var a = [];' è un array-valori memorizzati in indici sequenziali. – Tushar
Non stai creando una matrice quando stai usando '{}', stai creando 'object' – Rayon
Qual è la domanda esatta? Differenza tra _object_ e _array_? Cosa stai cercando di fare? Aggiungi un altro codice – Tushar