LoginSignup
4
3

More than 3 years have passed since last update.

【JavaScript】配列から重複をなくす方法

Posted at

はじめに

コロナウイルスにより圧倒的に暇となってしまったため、なんとなくで競プロをはじめてみました。
大学生の頃に少しかじっていましたが、な〜んにも覚えてません(笑)

仕事でに少しでも役に立ったら嬉しいな〜と思ったので、JavaScriptでやっています。
学生の頃にPython使ってたので、そのうち乗り換えるかもしれない。

JavaScriptで競プロを行う上で、様々なメソッドを使うようになりました。
正直あんまりWeb開発で使わないな〜って漢字のメソッドもたくさん出てきますね!
その中で、配列から重複をなくせるfilterについて記事でまとめます!

filterの使い方

解説と言っても非常にシンプルです。

nums = [3 ,5, 7, 7, 8 , 9 ,8]

// num: 各要素, i: index
const result = nums.filter((num, i) => nums.indexOf(num) === i)

console.log(result)

// [3, 5, 7, 8, 9]

indexOfとは、配列の中で引数に渡した値を探し、一番最初に見つかったindexを返します。
つまり、filterの中でやっていることを詳しく書いていくと、

// nums = [3 ,5, 7, 7, 8 , 9 ,8]

nums.indexOf(3) === 0
// indexが一致するからヨシ!

nums.indexOf(5) === 1
// indexが一致するからヨシ!

nums.indexOf(7) === 2
// indexが一致するからヨシ!

nums.indexOf(7) === 3
// ここではじめて弾かれます。
// nums.indexOf(7)で返ってくる値は'2'
// indexが一致しないからダメ!

nums.indexOf(8) === 4
// indexが一致しないからダメ!

nums.indexOf(9) === 5
// indexが一致するからヨシ!

nums.indexOf(8) === 6
// indexが一致しないからダメ!

おしまい

競プロむずい
けど暇だし頑張る

4
3
5

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3