私はid
プロパティを使用してオブジェクトの配列を取得し、マップされたオブジェクトに変換するためにlodash mapKeys
を使用しています。それは簡単ですが、問題は新しいオブジェクトをid
でソートすることです。例えばlodash mapKeysが配列を並べ替えるのを防ぐには?
私は、アレイ内の3つのオブジェクトがあった場合:
let myArray = [
{
id: 3,
name: 'Number Three'
},
{
id: 1,
name: 'Number One'
},
{
id: 2,
name: 'Number Two'
}
];
その後、私はid
でキーをマップ:
_.mapKeys(myArray, 'id')
をそれは次の値を返します。
{
1: {
id: 1,
name: 'Number One'
},
2: {
id: 2,
name: 'Number Two'
},
3: {
id: 3,
name: 'Number Three'
}
}
マイサーバーは配列を特定の順序で返します。オブジェクトを同じままにしたいのでオブジェクトのプロパティをループすると、正しい順序になります。
この方法で可能ですか?そうでない場合は、結果を達成するための代替手段がありますか?
これは実際にネイティブのJavaScriptの動作です。 'var o = {}; o [3] = 3; o [1] = 1; 'o:' {1:1、3:3} 'なぜこれがあなたのために問題を引き起こしていますか?リスト全体を反復処理する場合、マップ形式では必要ありません。キーIDでオブジェクトにアクセスする場合は、順序は関係ありません。 –
ああ、ソートせずにオブジェクトのプロパティを配置することはできませんか? –
問題は並べ替えと更新の容易さに関連しています。配列を使用して表示するために配列をマップすることはできますが、大きな配列です。配列をループして正しいオブジェクトを見つけて更新するのではなく、 'object [property] = value'を使って更新する方がはるかに高速です。 –