Differenza tra creare array utilizzando new Array () e new Object in Javascript [duplicato]
Oct 26 2020
Vedo l'esempio che crea un array utilizzando
var array = new Array(5);
ma vedo anche qualcosa di simile
arrayObj[0] = "index zero";
arrayObj[10] = "index ten";
Penso che il codice sopra crei un oggetto con due nomi di campo 0 e 10 come sotto? È corretto?
arrayobj {
0: "index zero"
10: "index ten"
}
diverso in questo modo a due per creare array utilizzando new Array () e new Object?
Risposte
1 Metabolic Oct 26 2020 at 20:52
Arraye Objectsono diversi l'uno dall'altro. Tecnicamente, ciò che stai facendo rende la struttura dei dati e l'utilità per il momento uguali, ma perdi le funzioni del prototipo e non puoi usarlo trasversalmente.
Ad esempio, Array.forEach()eseguirà un ciclo su un array ma non su un oggetto la cui coppia chiave / valore è equivalente a quella dell'indice / elemento di un array
var array = new Array(5).fill('index');
arrayObj = {};
arrayObj[0] = "index zero";
arrayObj[10] = "index ten";
try {
console.log(array.length);
array.forEach(i => console.log(i));
console.log(arrayObj.length);
arrayObj.forEach(i => console.log(i));
} catch (e) { console.error(e); }
//looping over Object
Object.keys(arrayObj).forEach((item)=>{
console.log(arrayObj[item]);
});