目的
オブジェクトリテラルのあるキーが重複している場合、重複した要素を除外してリストを作りたいと考えました。
それも for loop なしで。
例
対象のリスト
someKey | value1 |
---|---|
1 | ... |
2 | ... |
3 | ... |
3 | ... |
2 | ... |
2 | ... |
5 | ... |
変更後
someKey | value1 |
---|---|
1 | ... |
2 | ... |
3 | ... |
5 | ... |
実装
findIndex と filter で実現できました!
var list = [{someKey:1},{someKey:2},{someKey:3},{someKey:3},{someKey:2},{someKey:2},{someKey:5}];
list.filter((element, index, array) => index === array.findIndex((current) => current.someKey === element.someKey))
結果
[ { someKey: 1 }, { someKey: 2 }, { someKey: 3 }, { someKey: 5 } ]