2012-11-23 15 views
5

Ieri ho iniziato a imparare JavaScript. Sto usando il sistema Codecademy, ma sono bloccato. Quando dico "bloccato", intendo che ho un incarico con il quale non riesco a vedere cosa c'è che non va.Imparare a programmare JavaScript, ma sono bloccato

L'assegnazione è:

creare un array, myArray. Il suo primo elemento dovrebbe essere un numero, il secondo dovrebbe essere un booleano, il terzo dovrebbe essere una stringa e il suo quarto dovrebbe essere ... un oggetto! Puoi aggiungere tutti gli elementi di qualsiasi tipo che desideri dopo questi primi quattro.

Questo è il codice che ho fatto:

var myObj = { 
    name: 'Hansen' 
}; 

var myArray = [12,true, "Steen" ,myObj.name]; 

L'errore:

Oops, try again. Is the fourth element of myArray an object?

Spero tu mi possa aiutare.

+0

@Kevin Ho eseguito il rollback della modifica alla domanda perché ha completamente modificato la domanda e le risposte non avevano più senso. Vedo che era una domanda successiva a quella originale. Stack Overflow funziona meglio se si mantiene un problema per domanda. È possibile collegare a domande precedenti per il contesto, se necessario. –

risposta

4

Il problema con il quarto elemento è che si passa una stringa perché myObj.name è definito come Hansen. Passare l'oggetto invece:

var myArray = [12,true, "Steen" ,myObj]; 
+0

Grazie! Avrei dovuto chiedere prima :) –

+1

@Kevin, nessun problema :) non ho idea del motivo per cui sono stato downvoted ... – MrCode

1

Non so quel sito, ma si può fare:

var myArray = [ 
    12, 
    true, 
    "Steen", 
    {name: 'Hansen'} 
]; 

Cosa si sta passando alla matrice è il valore della proprietà name del vostro oggetto, invece dell'oggetto stesso.

0

Il passaggio nella proprietà name anziché l'oggetto per il quarto parametro array come probabilmente già si conosce dalle altre anwers.

Come il tuo apprendimento qui ci sono alcuni modi per fare esattamente la stessa cosa che stai facendo qui.

Il tuo modo corretto:

var myObj = { 
    name: 'Hansen' 
}; 

var myArray = [12, true, "Steen", myObj]; 

Altri modi:

// Method 1 
var myArray = [12, true, "Steen", {name: 'Hansen'}]; 

// Method 2 
var myObj = new Object(); 
myObj.name = "Hansen"; 
var myArray = new Array(12, true, "Steen", myObj); 

// Method 3 
var myObj = {}; 
myObj['name'] = 'Hansen' 
var myArray = [ 
    12, true, 'Steen', myObj 
] 

Ogni metodo mostra alcuni modi diversi di fare la stessa cosa, è possibile combinare le parti equivalenti di codice per fare lo stesso lavoro. In pratica cambia tra la normale sintassi JavaScript e la sintassi letterale dell'oggetto .

Problemi correlati