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

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

新規登録して質問してみよう
ただいま回答率
85.48%
多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

Q&A

解決済

2回答

520閲覧

javascriptで配列の重複するものをカウントして、結果を出力したい!!!

KobeanH

総合スコア6

多次元配列

1次元配列内にさらに配列を格納している配列を、多次元配列と呼びます。

アルゴリズム

アルゴリズムとは、定められた目的を達成するために、プログラムの理論的な動作を定義するものです。

オブジェクト

オブジェクト指向において、データとメソッドの集合をオブジェクト(Object)と呼びます。

JavaScript

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

配列

配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

0グッド

0クリップ

投稿2022/01/16 11:58

javascriptで配列の重複するものをカウントして、結果を出力したいのですが、やり方がわからず困ってます( ; ; )

例えば

let array1 = [ 100, 200, 200, 300, 300 400, 400, 400 ]

の配列があったとします。

この配列に

関数x

を実行すると、

100×1, 200×2, 300×2, 400×3

のように結果を出力したいです。

自分でも調べて試してみたのですが、なかなかうまくいきませんでした。
どのようなコードを書けばいいのかご教授いただけますと助かります。

よろしくお願いします。

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

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

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

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

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

guest

回答2

0

javascript

1<div id="view"></div> 2<script> 3const a=[100,200,200,300,300,400,400,400]; 4[...new Set(a)].map(x=>[x,a.filter(y=>x==y).length]).forEach(x=>view.appendChild(Object.assign(document.createElement('span'),{innerHTML:`${x[0]}&times;${x[1]}`}))); 5</script>

投稿2022/01/17 00:40

yambejp

総合スコア114784

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

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

0

ベストアンサー

javascript

1const array1 = [ 100, 200, 200, 300, 300, 400, 400, 400 ] 2let result = {} 3for (let v of array1) { 4 if (!(v in result)) result[v] = 0 5 result[v]++ 6} 7console.log(result)

--- 追記 ---

javascript

1for (let k in result) { 2 console.log("<span>" + k + "×" + result[k] + "</span>") 3}

--- 追記 ---

html

1<html> 2<head> 3</head> 4<body> 5<div id="fuga"></div> 6<script> 7const array1 = [ 100, 200, 200, 300, 300, 400, 400, 400 ] 8let result = {} 9for (let v of array1) { 10 if (!(v in result)) result[v] = 0 11 result[v]++ 12} 13let str = "" 14for (let k in result) { 15 str += "<span>" + k + "×" + result[k] + "</span><br>" 16} 17document.getElementById("fuga").innerHTML = str 18</script> 19</body> 20</html>

※REACTは分かりません。

投稿2022/01/16 12:27

編集2022/01/17 20:55
takasima20

総合スコア7458

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

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

KobeanH

2022/01/16 15:36

回答ありがとうございます! そのconsoleで出力したresultをreactでhtml要素として出力するにはどうすればいいでしょうか? 現在、console.log(result)の結果は { 100:1, 200:2, 300:2, 400:3 } になっていると思います。 これを <span>100×1</span> <span>200×2</span> <span>300×2</span> <span>400×3</span> のような形で出力したいです。 何卒、よろしくお願いします。
KobeanH

2022/01/17 13:56

何度もすみません。 そのresultをconsoleではなくブラウザで見れるようにhtmlで出力したいです。 一応、自分でもusestateを作り、resultをstateにセットした後、mapを使って出力できるか試してみたのですが、mapではresultがオブジェクトなため(?)実装できませんでした。 他にやり方はございますか?
KobeanH

2022/01/22 02:40

ありがとうございます! なんとかできました!!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問