質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

2回答

717閲覧

JavaScript 重複した配列

aser

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2021/05/28 14:15

前提・実現したいこと

重複している配列を列挙するのですが、
重複している配列の元を飛ばして列挙するにはどうしたらいいでしょうか

下記コードの実行結果は
Array(4) [ "1", "1", "1", "2", "2" ]
となります
Array(4) [ "1", "1", "2" ]と表示したいです
つまり重複した1が2つ存在する
重複した2が1つ存在するという中身にしたいです

該当のソースコード

<script> window.onload=function(){ var ar=new Array("1","1","1","2","2","3"); arr = ar.filter((x,i,s) => s.indexOf(x)!==s.lastIndexOf(x)); console.log(arr); } </script>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

maisumakun

2021/05/28 14:26

> つまり重複した1が2つ存在する 重複した2が1つ存在するという中身にしたいです 「もっと多数の要素が重複する場合」や「1,2,1,2のように重複した要素同士が入り交じる場合」はどのようにすればいいのでしょうか。
guest

回答2

0

以下のように変更してみてはどうでしょうか。
s.indexOf(x)i

投稿2021/05/29 06:51

Lhankor_Mhy

総合スコア36158

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

配列中の重複要素をそれぞれ1つだけ取り除きたい、ということでしょうか。

以下のような考え方で良いかと思います。

  • 元の配列から、重複しないSetを作成する。質問文の配列なら[1,2,3]を作る。 Setオブジェクトで簡単につくれる。
  • Set中の要素それぞれについて、元の配列からSet側の要素と一致する要素を除去する。質問文の例だと、配列arから 1, 2, 3 が1つずつ取り除かれる。

以上の処理で [1,1,2]が得られます。

以下、検証コード:

javascript

1var ar = new Array("1","1","1","2","2","3"); 2// 元の配列をSetに入れて重複を取り除く 3var ar_set = new Set(ar); 4console.log("ar_set", ar_set); // -> ar_set Set(3) { '1', '2', '3' } 5// Setの中身の要素をarから除去する 6ar_set.forEach( e => ar.splice(ar.indexOf(e),1)); 7console.log("answer", ar); // -> answer [ '1', '1', '2' ]

投稿2021/05/29 00:05

hope_mucci

総合スコア4447

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問