私はJSで少し問題に取り組んでいます。Javascriptでオブジェクトを指定する配列
目的は、多次元配列をオブジェクトの配列に変換する関数を書くことです。例えば、入力は次のようになります。
var data = [
[
['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'}
]
は、私がこれまで持っているものです。
function transformEmployeeData(array) {
var object = {};
var objectsArray = [];
for (i=0; i<array.length; i++) {
for (j=0; j<array[i].length; j++) {
var keys = array[i][j][0];
object[keys] = array[i][j][1];
} objectsArray.push(object);
}
return objectsArray);
}
それはほとんどそうですが、私これを出力として取得します。
[ { firstName: 'Mary',
lastName: 'Jenkins',
age: 36,
role: 'manager' },
{ firstName: 'Mary',
lastName: 'Jenkins',
age: 36,
role: 'manager' } ]
同じことを2回吐き出さないように関数を修正するにはどうすればいいですか?
ありがとうございました!
あなたがデバッガで、またはペンと紙を使用してコードを通過しようとしたことがありますか?そうすれば、バグがどこにあるかを理解して修正することができます。 – Li357
[** this **](https://jsfiddle.net/vf0dp1rL/)のように 'map'と' reduce'を使って実行できます。 –
@ ibrahimmahrir - それはOPを助けません。 – RobG