簡體   English   中英

關於數組的功能性javascript

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM