2016-12-16 9 views
-5

従業員データをあるフォーマットから別のフォーマットに変換する "transformEmployeeData"という関数を記述します。オブジェクトへのJavascript配列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'} 
] 

指定されたサンプルとは異なる行または異なるキーを使用します。

たとえば、人事部が各従業員レコードに「t-shirtSize」フィールドを追加するとします。あなたのコードはそれに柔軟に対応する必要があります。

スターターコード:

function transformEmployeeData(array) {} 
+0

どのように宿題が来るのですか? – PaulProgrammer

+0

何を試しましたか? – Xzandro

+0

私たちはあなたの問題を解決するためにここに来ています、あなたのためのコードを記述してください。すべてあなたが試したことを私たちに教えてください –

答えて

-1

試してみてください。

JSON.stringify(myArray); 

これは、オブジェクトに配列を変換します。

+0

2つの不正確さ: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表記)。

うわー。それは一口だった。

関連する問題