2016-04-27 15 views
-5

Unten ist die Frage, die ich in 65 Javascript-Interview Fragen sah, aber die Antwort
sie gemachten Angaben nicht korrekt erscheinen als „Car“ ist keine Funktion, die einen Fehler aus, wenn ich den Code kompilieren:funktioneller Javascript Array in Bezug auf

folgende Array gegeben, baue mir eine Reihe von Autos mit diesen Farben:

var colors = ['blue', 'black', 'red']; 
var cars = ...; 

Antwort:

var colors = ['blue', 'black', 'red']; 
var cars = colors.map(buildCar); 
function buildCar (color) { 
    return new Car(color); 
} 

Würde mir jemand erklären, wie man diese Antwort ändert, damit sie die Anforderung erfüllt?

+0

'Auto' es ist eine Konstruktorfunktion –

Antwort

1

Sie rufen new Car(color), aber Sie haben keine Definition für eine Car.

hinzufügen:

function Car(color) 
{ 
    this.color = color; 
} 

Wenn Sie mehr Eigenschaften hinzufügen möchten, können Sie so etwas wie tun könnte:

function Car(color, model) 
{ 
    this.color = color; 
    this.model = model; 
} 
var properties = [["blue","Buick"],["red","Benz"],["black","Chevy"]]; 
var cars = properties.map(buildCar); 
// now, the buildCar function will be passed a pair [color,model], because 
// each element of the properties array is now an array of length 2 
function buildCar(pair) 
{ 
    return new Car(pair[0],pair[1]); 
} 

oder, wenn Sie wollen die colors Array nicht ändern, Sie kann tun

function buildCar(color) 
{ 
    var model; 
    if (color == "blue") 
     model = "Buick"; 
    else if (color == "red") 
     model = "Benz"; 
    else if (color == "black") 
     model = "Chevy"; 
    return new Car(color,model); 
} 
+0

Danke für Ihre Hilfe! Ich bin total neu in Javascript, weißt du, ob es ein gutes Tutorial online für Javascript Anfänger gibt? –

+0

Google ist dein Freund. Hier ist eine Ressource: http://www.w3schools.com/js/ – Chara

+0

Danke, wenn ich verschiedene Farben anzeigen möchte, die verschiedenen Auto-Typen entsprechen, zum Beispiel möchte ich blau zu Buick zuweisen, schwarz zu Chevy, rot zu Benz, tun Sie haben eine Idee was sollte ich zur bestehenden bulidCar Funktion hinzufügen? –

Verwandte Themen