2017-05-15 9 views
-7

私はNodeJsを初めて使用しています。JavaとAngular Typescriptでの経験がありました。このJsコードを理解できません

私はこのコードを書いていますが、私は理解できません。私を助けてくれますか?コンソールで印刷出力を試みましたが、構文を理解できません。

function toMap(arr, key) { 
    var map = {}; 
    console.log("Key is"+ key); 
    if (arr) { 
    for (var i=0; i<arr.length; i++) { 
     map[arr[i][key]] = arr[i]; 
    } 
    } 

    return map; 
} 

arrはデータベースから来るオブジェクトの配列であり、idはキーであり、ここで渡される値は 'id'です。

+1

- これら二つは、それを作る必要があります見て関数が何をするかを明確にしてください - もしそうでなければ、どんな量の説明が役に立つかもしれないと確信していません –

+0

それはdbから来るキーバリューペアオブジェクトです – INFOSYS

+0

なので、 –

答えて

0

この関数は、nodeJを正しく理解したい場合は、コールバックとは何かを認識しているかどうかを確認するために、配列をキー値ペアの必須形式に変換するだけです。 "arr"複数の値を持つforループは、共通オブジェクトmap[arr[i][key]] = arr[i];を持つ単一オブジェクトのすべての値を返します。mapは、この関数から返される最終的な配列です。 この関数は、2つのパラメータを送信してtoMap(arr, key)を呼び出しています。

0

それは

[{ omg:'ahh' }, {omg:'ohnoes'}] 

のようなオブジェクトのコレクションを取り、このような何かにそれを回すように見えます:

{ 
    'ahh': {omg:'ahh'}, 
    'ohnoes': {omg: 'ohnoes'} 
} 

コールtoMap([{ omg:'ahh' }, {omg:'ohnoes'}], 'omg')を使用します。これはlodashのkeyBy関数と非常によく似ています。

0

これは非常に簡単です。 arrパラメータは、オブジェクトの配列(同じ、場合によってはある種のレコード)です。keyは、これらのオブジェクトに存在するプロパティを表す文字列です。 関数は、新しいオブジェクトを返すだけです。これらのオブジェクトのそれぞれは、keyプロパティで利用可能な値でアクセス可能です。

例:

people = [ { name: 'John', age: 20 }, 
      { name: 'Alice', age: 32 }, 
      { name: 'Bartek', age: 24 } 
     ] 

map = toMap(people, 'name') 

となりましマップに等しいです: `arr`がどのように見える...返されたオブジェクトが好きなものを見てないん何

{ 
    'John': { name: 'John', age: 20 }, 
    'Alice': { name: 'Alice', age: 32 }, 
    'Bartek': { name: 'Bartek', age: 24 }, 
} 
+0

はいこれはそれを行う簡単な方法です。私は構文を理解することができません – INFOSYS

関連する問題