配列には任意の数の数値が入っています
その値に対して,順位を計算する関数を利用したいと考えています
配列に入っている値は,昇順降順になっているとは限りません
同じ値の場合には,平均の順位となります
例
// 数値の配列
let a = [68,74,60,56,66,77,83];
// 順位の配列
// ranking((配列,昇降) 1::小さい順に順位付け 2:大きな順に順位付け
let b = ranking(a,1);
b = [4 , 5 , 2 , 1 , 3 , 6 , 7]
例
// 同じ値の場合は 平均順位
let a = [56,66,68,77,77,83,56];
let b = ranking(a,1);
b = [1.5 , 3 , 4 , 5.5 , 5.5 , 7 , 1.5]
配列を並び替える方法はわかるのですが,
順位をつける方法として,map関数やfilter関数が使えるのではと考えたのですが
よくわかりませんでした
みなさんからご指摘いただいたように,もう少し自分で調べて考えてみることにします
同順はどうするのでしょうか?
わからない部分はどこですか? 「わからないことがわからない」状態ですか?
https://teratail.com/help/question-tips#questionTips2-1
えーと、コード作成依頼でしょうか。そのようなものにはお応えできません
どこまで自分でやってみましたか?
まず、ご自分で調べられましたか?
javascriptは、値の大小順に配列並べ替えるのは、簡単にできます。
(というかプログラムにおいてかなり初歩)
https://qiita.com/PianoScoreJP/items/f0ff7345229871039672
本質問の順序が入った配列も、上記を応用すればできるかと・・・。(同じ値は平均出すって部分も)
なので、自分でまずやってみて、自分でやってみたところまででけっこうなので、自身でやってみたコードを記載しましょう。
そうしないと、丸投げ、作業依頼質問と思われてしまいますよ。
yambejpさん > 同順 == 同じ値、ということでしたら、一応、質問文の中に、同じ値の場合の言及が含まれています。
みなさん ご指摘ありがとうございます
並び替えはできるのですが,同じ値で平均を計算するというところがわからなかったので質問させてもらいました
教えていただいたページを参考に試してみることにします
>よろしくお願いします
何をですか?「コード組んでください」ですか?
https://teratail.com/help/avoid-asking
>コードをください・デバッグしてください等の丸投げの質問
ご指摘ありがとうございます
map関数とfilter関数を使うとよいのではないかと考えたのですが,わからなかったので質問させていただきました
回答をいただいた内容をもとに自分で調べて解決するようにします
まず使ってみては如何でしょうか。最初はうまくいかないものなので、そこで試行錯誤してそれでも解決しなかったら、そのコードと調べたことを以て質問するのが「teratailでの質問の仕方」です。
※コピペコードをもらってその場は凌げても自身の成長には全くつながりませんし
「質問するときのヒント」は「ルールブック」がわりにしてください
https://teratail.com/help/question-tips
ありがとうございます
まずはmapとfilterを使ってみることにします
回答2件
あなたの回答
tips
プレビュー