2015-09-18 102 views
5

我正在學習爵士和我將非常感謝您的幫助。如果可能,我想給我們更高階的函數和回調。你如何從一個函數返回一個對象?

任務

  1. 聲明這些局部變量,並使其等於相應的信息,名字,姓氏,LinkedIn,電話,城市
  2. 使用字符串連接,使局部變量全名等於用空格隔開的姓氏和名字。
  3. 做一個局部變量LinkedIn,一個字符串,它是你的LinkedIn個人資料的鏈接。
  4. 做一個局部變量信息是包含數組的全名LinkedIn電話,並城市變量,按照這個順序。
  5. 做一個局部變量教育這是一個包含您的學院/大學的名稱,研究領域,一個整數,它是你的(預期的)畢業年份陣列。確保它是按照這個順序。
  6. 定義一個函數createApp這需要您的信息和教育的順序參數。這應該返回一個包含2個鍵的對象。鍵名必須與變量名相同。將這些鍵的值設置爲相應的參數。

步驟1-5: 創建局部變量。

(function person() { 
    var firstName = "Rob", 
    lastName = "Johnson", 
    fullName = firstName + ", " + lastName, 
    linkedIn = 'https://www.linkedin.com/in/robjohnson', 
    phone = 3105559288, 
    city = 'Los Angeles', 
    info = [firstName, linkedIn, phone, city], 
    education = ['UWRock','Generals','2017']; 
})(); 

步驟6. 返回含有2個鍵的對象。鍵名必須與變量名相同。將這些鍵的值設置爲相應的參數。我不知道,我認爲這應該是動態的而不是硬編碼的。

function createApp(info, education){ 
    var myObj = {}; 
    return(myObj); 
}; 

我想我假設使用回調返回是這樣的:

myObj { 
    info:'Rob', 
    education: ['UWRock','Generals','2017'] 
}; 
+0

http://stackoverflow.com/questions/32496076/javascript-return-with-colon會幫助你 – Tushar

+0

你能寫下你的例子的代碼? var resultObject = {...?目前尚不清楚你想要達到什麼樣的目標 – Trike

+0

@Trike,我更新了問題並舉了例子。 –

回答

0

I找到了解決方案。

function list() { 
    var firstName = "Rob", 
     lastName = "Johnson", 
     fullName = firstName + ", " + lastName, 
     linkedIn = 'https://www.linkedin.com/in/robjohnson', 
     phone = 3105559288, 
     city = 'Los Angeles', 
     info = [firstName, linkedIn, phone, city], 
     education = ['UWRock','Generals','2017']; 

    createApp(info,education); 

} 

function createApp(info, education){ 
    var emptyObj = {}, 
     strArr = ['info','education'], 
     myArray = [info, education]; 

     for (var i = 0; i < myArray.length; i++){ 
     emptyObj[strArr[i]] = myArray[i]; 
     } 

    console.log(emptyObj); 

} 

list(); 

的結果是

[ Object ] { 
education: ["UWRock", "Generals", "2017"], 
info: ["Rob", "https://www.linkedin.com/in/robjohnson", 3105559288,"Los Angeles"] 
} 

我試圖找到雖然一個更好的方法。

0

比方說,你有以下功能

var GraphicalFilters = (function() { 
    var SelectedFilters = {};  
    return { 
     initializaAllFilters: function(value1,value2) { 
        SelectedFilters = {}; 
        SelectedFilters.value1 = value1; 
        SelectedFilters.value2 = value2; 
     }, 
     getAllFilters: function() { 
      return SelectedFilters; 
     } 
    }; 
})(); 

您可以通過以下獲得對象:

GraphicalFilters.initializaAllFilters(1,2); 
var $filters = GraphicalFilters.getAllFilters(); 
+0

這可行,但不符合挑戰的指導原則。我必須先創建一個帶有兩個參數的函數。謝謝你! –

相關問題