オブジェクト型の中身をキーではなく値でユニークにする方法。
myObj
は オブジェクト型。
中身こんな感じで、1とか2が重複。
[オブジェクト, オブジェクト, オブジェクト]
みたいなオブジェクトが配列に入ったのを
ユニークにする的な記事はあったけど、
1つオブジェクトからユニークにするのはあまり見つからない。
JavaScriptやる奴多いのに。またはこの需要すくねーのか?
const myObj = { 'a': 1, 'b': 1, 'c': 1, 'd': 2, 'e': 2 };
const res = Object.entries(myObj) .filter((elm, index) => Object.values(myObj).indexOf(elm[1]) === index) .map(elm => ({ key: elm[0], value: myObj[elm[0]] }));
filter
でユニークにする。最初に見つかったインデックスで行っているというわけだ。
これで、
console.log(res);
こんなの
0: {key: "a", value: 1} 1: {key: "d", value: 2}