Wat is de manier om een array in JavaScript te declareren?

Ik ben net JavaScript aan het leren en het lijkt erop dat er een aantal manieren zijn om arrays te declareren.

  1. var myArray = new Array()
  2. var myArray = new Array(3)
  3. var myArray = ["apples", "bananas", "oranges"]
  4. var myArray = [3]

Wat zijn hun verschillen en wat zijn de voorkeursmanieren?

Volgens deze websitezijn de volgende twee regels heel verschillend:

var badArray = new Array(10); // creates an empty Array that's sized for 10 elements
var goodArray= [10];          // creates an Array with 10 as the first element

Zoals je kunt zien, doen deze twee regels twee heel verschillende dingen. als jij
meer dan één item had willen toevoegen, dan zou badArray zijn
correct geïnitialiseerd omdat Javascript dan slim genoeg zou zijn om
weet dat u de array aan het initialiseren was in plaats van aan te geven hoeveel
elementen die u wilde toevoegen.

Is wat de auteurs proberen te zeggen is dat Array(10)een array maakt met precies 10 elementen en [10]een array maakt van ongedefinieerde grootte met het 0e element 10 zijn? Of wat betekent dit?


Antwoord 1, autoriteit 100%

De voorkeursmanier is om altijd de letterlijke syntaxis met vierkante haken te gebruiken; zijn gedrag is voorspelbaar voor een willekeurig aantal items, in tegenstelling tot Array‘s. Bovendien is Arraygeen trefwoord, en hoewel het geen realistische situatie is, zou iemand het gemakkelijk kunnen overschrijven:

function Array() { return []; }
alert(Array(1, 2, 3)); // An empty alert box

Het grotere probleem is echter dat van consistentie. Iemand die code aanpast, kan deze functie tegenkomen:

function fetchValue(n) {
    var arr = new Array(1, 2, 3);
    return arr[n];
}

Het blijkt dat alleen fetchValue(0)ooit nodig is, dus de programmeur laat de andere elementen vallen en breekt de code, omdat het nu undefinedteruggeeft:

var arr = new Array(1);

Antwoord 2, autoriteit 97%

In je eerste voorbeeld maak je een lege array, hetzelfde als bij var x = []. Het 2e voorbeeld maakt een array van grootte 3 (met alle elementen undefined). De 3e en 4e voorbeelden zijn hetzelfde, ze maken allebei arrays met die elementen.

Wees voorzichtig bij het gebruik van new Array().

var x = new Array(10); // array of size 10, all elements undefined
var y = new Array(10, 5); // array of size 2: [10, 5]

De voorkeursmanier is het gebruik van de []syntaxis.

var x = []; // array of size 0
var y = [10] // array of size 1: [1]
var z = []; // array of size 0
z[2] = 12;  // z is now size 3: [undefined, undefined, 12]

Antwoord 3, autoriteit 39%

Er zijn een aantal manieren om arrays te maken.

De traditionele manier om een array te declareren en te initialiseren ziet er als volgt uit:

var a = new Array(5); // declare an array "a", of size 5
a = [0, 0, 0, 0, 0];  // initialize each of the array's elements to 0

Of…

// declare and initialize an array in a single statement
var a = new Array(0, 0, 0, 0, 0); 

Antwoord 4, autoriteit 28%

Om het te declareren:

var myArr = ["apples", "oranges", "bananas"];

Om het te gebruiken:

document.write("In my shopping basket I have " + myArr[0] + ", " + myArr[1] + ", and " + myArr[2]);

Antwoord 5

Als u een array maakt waarvan het belangrijkste kenmerk de lengte is, in plaats van de waarde van elke index, is het geschikt om een array te definiëren als var a=Array(length);.

bijv.

String.prototype.repeat= function(n){
    n= n || 1;
    return Array(n+1).join(this);
}

Other episodes