[英]functional javascript regarding to array
以下是我在 65 個 javascript 面試問題中看到的問題,但答案是
他們提供的似乎不正確,因為“汽車”不是在我編譯代碼時拋出錯誤的函數:
給定以下數組,為我構建一組具有這些顏色的汽車:
var colors = ['blue', 'black', 'red'];
var cars = ...;
回答:
var colors = ['blue', 'black', 'red'];
var cars = colors.map(buildCar);
function buildCar (color) {
return new Car(color);
}
有人會向我解釋如何修改此答案使其符合要求嗎?
您正在調用new Car(color)
,但您沒有Car
的定義。
添加這個:
function Car(color)
{
this.color = color;
}
如果要添加更多屬性,可以執行以下操作:
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]);
}
或者,如果您不想更改colors
數組,則可以執行
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);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.