万年素人からHackerへの道

万年素人がHackerになれるまで殴り書きするぜ。

  • ・資産運用おすすめ
    10万円は1000円くらい利益
    資産運用ブログ アセマネ
    • ・寄付お願いします
      YENTEN:YYzNPzdsZWqr5THWAdMrKDj7GT8ietDc2W
      BitZenny:ZfpUbVya8MWQkjjGJMjA7P9pPkqaLnwPWH
      c0ban:8KG95GXdEquNpPW8xJAJf7nn5kbimQ5wj1
      Skycoin:KMqcn7x8REwwzMHPi9fV9fbNwdofYAWKRo

    JSでオブジェクト型の中身をキーではなく値でユニークにする方法

    オブジェクト型の中身をキーではなく値でユニークにする方法。 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}