2016-10-26 44 views
-1

Directions:編寫一個名爲「greetCustomers」的函數。如何將鍵值中的值分配給包含它的對象鍵?

給定一個名稱,「greetCustomers」根據客戶訪問餐廳的次數返回問候語。請參閱customerData對象。

問候應該是不同的,這取決於他們的預訂名稱。

案例1 - 未知顧客(名稱不存在於customerData):

VAR輸出= greetCustomer( '特倫斯'); console.log(輸出); // - >'歡迎!這是你第一次嗎?'

案例2 - 客戶誰曾經訪問過一次( '訪問' 值爲1):

無功輸出= greetCustomer( '喬'); console.log(輸出); // - >'歡迎回來,喬!我們很高興你第一次喜歡我們!'

案例3 - 重複顧客:( '訪問' 值大於1):

VAR輸出= greetCustomer( '卡羅爾'); console.log(輸出); // - >'歡迎回來,喬!很高興再次見到你!'

備註: *您的函數不應該更改customerData對象來更新訪問次數。

var customerData = { 
'Joe': { 
    visits: 1 
    }, 
'Carol': { 
    visits: 2 
    }, 
'Howard': { 
    visits: 3, 
    }, 
'Carrie': { 
    visits: 4 
    } 
    }; 

這裏是我的代碼:

function greetCustomer(firstName){ 
var greeting = '' 

    for (var keys in customerData){ 
     for (var k in customerData[keys]) 

    if (customerData[keys][k] < 0) greeting = 'Welcome! Is this your first time?' 
    else if (customerData[keys][k] === 1) greeting = "Welcome back, " + firstName + "! We're glad you liked us the first time!" 
    else if (customerData[keys][k] >= 2) greeting = "Welcome back, " + firstName + "! So glad to see you again!" 
     } 

    return greeting 
    } 
greetCustomer("Carol") 

爲什麼沒有這個路徑情況之一。是否有更好的方式來訪問該名稱並分配或關聯訪問的次數?

回答

2

你並不需要通過整個對象進行迭代,只是他們的第一個名字查找:

var customerData = { 
 
    'Joe': { 
 
    visits: 1 
 
    }, 
 
    'Carol': { 
 
    visits: 2 
 
    }, 
 
    'Howard': { 
 
    visits: 3, 
 
    }, 
 
    'Carrie': { 
 
    visits: 4 
 
    } 
 
}; 
 

 
function greetCustomer(firstName) { 
 
    var greeting = ''; 
 
    if (!customerData[firstName]) { 
 
    // if they're not found in data, it's their first time 
 
    greeting = 'Welcome! Is this your first time?'; 
 
    } else if (customerData[firstName].visits === 1) { 
 
    greeting = "Welcome back, " + firstName + "! We're glad you liked us the first time!"; 
 
    } else if (customerData[firstName].visits >= 2) { 
 
    greeting = "Welcome back, " + firstName + "! So glad to see you again!"; 
 
    } 
 
    return greeting; 
 
} 
 

 
// tests 
 
console.log(greetCustomer("Joe")); 
 
console.log(greetCustomer("Carol")); 
 
console.log(greetCustomer("Howard")); 
 
console.log(greetCustomer("Carrie")); 
 
console.log(greetCustomer("Bob"));

1

注意:最後else if可能只是普通的else聲明

var customerData = { 
    'Joe': { 
    visits: 1 
    }, 
    'Carol': { 
    visits: 2 
    }, 
    'Howard': { 
    visits: 3 
    }, 
    'Carrie': { 
    visits: 4 
    } 
}; 



function greetCustomer(firstName) { 
var greeting = ''; 
if (!customerData[firstName]){ 
     greeting = 'Welcome! Is this your first time?'; 
}else if (customerData[firstName].visits === 1){ 
     greeting = "Welcome back, " + firstName + '! ' + "We're glad you liked us the first time!"; 
}else{ 
     greeting = 'Welcome back, ' + firstName + '! ' + 'So glad to see you again!'; 
} 
    return greeting; 
} 

console.log(greetCustomer('Carrie')); 
//Welcome back, Carrie! So glad to see you again! 
相關問題