2016-12-16 114 views
-5

編寫一個名爲「transformEmployeeData」的函數,將某些員工數據從一種格式轉換爲另一種格式。Javascript Array to Objects transformEmployeeData

的論點將是這個樣子:

[[['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role','clerk'] 
    ], 
    [ 
     ['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role','manager']]] 

鑑於輸入,返回值應該是這樣的:

[ 
    {firstName: 'Joe', lastName: 'Blow', age: 42, role:'clerk'}, 
    {firstName: 'Mary', lastName: 'Jenkins', age: 36, role:'manager'} 
] 

注意,輸入可以有不同數量的行或不同於給定樣本的關鍵字。

例如,假設HR部門爲每個員工記錄添加一個「t-shirtSize」字段。你的代碼應該靈活地適應這個。

起動代碼:

function transformEmployeeData(array) {} 
+0

作業如何? – PaulProgrammer

+0

你嘗試了什麼? – Xzandro

+0

我們在這裏幫助您解決問題,而不是爲您編寫代碼。請告訴我們你試過的所有東西 –

回答

-1

嘗試:

JSON.stringify(myArray); 

這陣列到對象轉換。

+0

兩個不準確之處:1:JSON.stringify將參數轉換爲*字符串*,而不是*對象*。 2:鍵值數組數組未轉換爲JSON。 –

0

可以使用下一個功能

var employedList = [[['firstName', 'Joe'], ['lastName', 'Blow'], ['age', 42], ['role','clerk']],[['firstName', 'Mary'], ['lastName', 'Jenkins'], ['age', 36], ['role','manager']]] 



function transformEmployeeData(array) { 
    var tranformEmployeList = []; 

    for(var i = 0; i< array.length; i++) { 
    var tempData = {} 
    for(var e = 0; e< array[i].length; e++) { 
     tempData[array[i][e][0]] = array[i][e][1] 
    } 
    tranformEmployeList.push(tempData) 
    } 

    return tranformEmployeList 
} 


console.log(transformEmployeeData(employedList)) // => the console 

CODE EXAMPLE

+0

非常感謝:) – Alex

0

對於通過陣列迭代和傳遞每個元件通過修改函數,.map通常是最好的方法。

function transformData(data) { 
    return data.map(function(a) { 
    var obj = {}; 
    a.map(function(b) { 
     obj[b[0]] = b[1]; 
    }); 
    return obj; 
    }) 
} 

此遍歷鍵值陣列的陣列的陣列,以及用於鍵值陣列的每個陣列,它的鍵 - 值陣列的每個陣列轉換成一個鍵值對象(通過雖然迭代每個鍵值數組以及設置對象的屬性obj[prop] = value表示法)。

哇。那是一口。