私はオブジェクトの配列を持っています。各オブジェクトにはid
という固有のメンバがあります。 id
の場合はマップのキーを作成するにはどうすればよいですか?一意のidプロパティを持つオブジェクトの配列をマップに変換する
答えて
Mapの必要な形式で新しい配列をマップできます。
var array = [{ id: 1, value: 'one' }, { id: 2, value: 'two' }, { id: 3, value: 'three' }, { id: 4, value: 'four' }, { id: 5, value: 'five' }],
map = new Map(array.map(a => [a.id, a]));
console.log([...map]);
.as-console-wrapper { max-height: 100% !important; top: 0; }
または反復処理し、あなたが[element.id, element]
ペアに配列要素をマッピングするためにArray.prototype.map()
を使用することができ、特定のキー
var array = [{ id: 1, value: 'one' }, { id: 2, value: 'two' }, { id: 3, value: 'three' }, { id: 4, value: 'four' }, { id: 5, value: 'five' }],
map = new Map();
array.forEach(a => map.set(a.id, a));
console.log([...map]);
.as-console-wrapper { max-height: 100% !important; top: 0; }
ES6では、forEach()メソッドの代わりにfor..ofループを使用する方が良いでしょう。[ES6で[... for、for ...のどちらかを使用すると、array.forEach()を使用する理由はありますか? ://stackoverflow.com/q/31344516/3853934)。 'forEach()'もループよりも遅いです。 –
しかし、私はループの出口を必要としません。ちょうど反復する。 –
しかし、このコードを使用している人がループを終了するためにこのコードを変更する必要がないかどうかはわかりません。そしてそれはまだ遅いです。 –
に新しい項目を追加し、結果の配列をに渡しますコンストラクタ。
const arr = [{id: 1, a: true, b: false}, {id: 2, a: false, b: true}]
const map = new Map(arr.map(element => [element.id, element]))
// Check if map looks OK
for (const [key, value] of map) {
console.log(key, value)
}
あなたはマップにあなたの配列を減らしたい:ここ
const arr = [{id:1},{id:2},{id:2}];
const map = arr.reduce((acc, item) => acc.set(item.id, item), new Map());
console.log(map.get(1));
はmap
とforEach
を使用してに対してJSPrefです。
クロムv53 reduce
が最も速い場合、forEach
とmap
が最も遅いです。
- 1. オブジェクトのプロパティの1つの配列にオブジェクトのリストを変換
- 2. マップ文字列をJavaの一意のint IDに変換しますか?
- 3. オブジェクトのjQuery配列を単一のオブジェクトに変換する
- 4. オブジェクトの配列内のプロパティを変換するには?
- 5. 一意のIDを持つリンクのクリックイベント
- 6. 1つのオブジェクトを配列オブジェクトに変換するには?
- 7. Immutable.js一意のIDを持つレコード(デフォルト)
- 8. 一意のIDを持つ部分ビュー
- 9. 一意の値を持つコレクト配列を追加する
- 10. 変換されたオブジェクトIDを持つmongodbから文字列
- 11. プロパティと値を持つオブジェクトを配列に追加するPHP
- 12. PHP - 配列にプロパティを持つオブジェクトを追加する
- 13. Angularfire - 配列内のすべてのオブジェクトの一意のIDを取得する
- 14. Mongoスキーマ、一意の値を持つ文字列の配列
- 15. 単一のxmlオブジェクトを配列に変換する方法
- 16. php配列を単一のJSONオブジェクトに変換する
- 17. PHP配列を一つの変数に変換する
- 18. mongo配列をキーと値のペアを持つオブジェクトに変換する
- 19. 特定のプロパティを持つ配列のオブジェクトを返す
- 20. オブジェクトの配列を通り、Idの配列からIDを持つオブジェクトを返します
- 21. JavaScript:配列を持つオブジェクトを、オブジェクトを持つ配列に分解する
- 22. オブジェクトを配列に変換したオブジェクトlodashを変換する
- 23. この配列をオブジェクトの配列に変換するには?
- 24. オブジェクトの配列内の単一要素を変換する
- 25. オブジェクト配列をPowerShellの文字列配列に変換する
- 26. 配列オブジェクトの多重深度配列をオブジェクト配列に変換する
- 27. javascript intの配列をオブジェクトの配列に変換する
- 28. 配列をjavascriptの配列オブジェクトに変換するには?
- 29. PHPで配列の配列をオブジェクトに変換するには?
- 30. 一意のオブジェクトを持つstd :: vectorのサイズを変更するには
もう少し説明していただけますか?例の配列はありますか?そして、あなたが期待する出力は何ですか? – Keith
以下の3つの回答のJSPrefsはここにあります:https://jsperf.com/array-to-map-4 – Ross
かなりシンプルなはずです。あなたはそれを自分で試しましたか?あなたのコードを教えてください。何がうまくいかなかったのですか? – Bergi