clover.blue

[JS問題] js問題応用

Data
2019/12/21
Tag

【Q1 - 1】ブラウザを更新するたび、['大吉', '中吉', '小吉', '吉', '末吉', '凶', '大凶' ]のいずれかをランダムでconsole.logで表示する

考え方

  • 大吉から大凶まで入った配列を定義する
  • 「配列の長さ」分の「ランダムな数値」を取得する処理を書く(0 〜「配列の長さ」の整数)
  • 配列から「ランダムで取ってきた数値の位置の配列」をとってきてconsole.logで表示する

使用するJavascript

使用例

Math.random(); // 0 ~ 1までのランダムな値が返ってくる
Math.floor(1.15); // 1が返ってくる、小数点を切り捨てる
([1,2,3]).length; // 3が返ってくる、配列の長さを取る

【Q1 - 2】「[Q1 - 1]のおみくじの処理」を関数にする

下記を実行することで、['大吉', '中吉', '小吉', '吉', '末吉', '凶', '大凶' ]のいずれかを返す関数を作りましょう。

下記の様に実行するとおみくじの結果を返してくれる関数を作る

console.log(omikuzi())

Q### 1のスクリプト以外に使用するJavascript

function omikuzi(){
  return '返したい値'
}

【Q2】配列を渡すと、配列内の数字を足した値が返ってくる

console.log(calcTheNumbersInArray([1, 2, 3, 4, 5, 6, 10])) //31と表示される
console.log(calcTheNumbersInArray([1, 2, 3, 4, 5, 6, 7, 8, 9, 10])) //55と表示される

考え方

  • calcTheNumbersInArray関数を作る
  • for文で「引数で受け取った配列長さ」だけ回す処理を作る
  • そのfor文を使って配列の中から一つづつとり出して、毎回それを足す処理を作る。

毎回足す処理を作るためには

  • 予め数値の0を入れた変数を定義しておく
  • その変数に毎回足した数値を代入し直すイメージ

使用するJavascript

使用例

// for文で10回処理
for(let i = 0;i < 10;i++) {
  console.log(i)
}

([1,2,3]).length; // 3が返ってくる、配列の長さを取る

ヒント

for文を使わずにやってみる。

// 毎回たすためには
const ary = [1, 2, 3] // 配列がはいった変数がある

let addNumber = 0
addNumber = addNumber + ary[0] // 0 + 1
addNumber = addNumber + ary[1] // 1 + 2
addNumber = addNumber + ary[2] // 3 + 3

console.log(addNumber) // 6
  1. ↑の処理をfor文に直すことを考える
  2. 直してコンソールですべての値が返す処理ができあがったら
  3. functionにするにはどうすればよいかを考える

【Q3】ユーザーの「合格・失格」を表示する

下記のような配列があります。
平均点を計算して、その点数に応じて「合格・失格」を表示しましょう。

const users = [
  {
    name: '佐藤',
    score: 90
  },
  {
    name: '山田',
    score: 40
  },
  {
    name: '斎藤',
    score: 70
  },
  {
    name: '高橋',
    score: 30
  },
  {
    name: '田中',
    score: 80
  }
]

考え方

平均点を計算する(全員の点数の合計 / 人数(配列の長さ))

const average = 全員の点数の合計 / 配列の長さ

【ポイント】全員の点数の合計をどうやって出すか

usersの回数分、繰り返し処理(forEach文)を行う

users.forEach(function(val) {
  console.log(val)
})

↑を使い、繰り返し処理の中で、下記の処理を行いconsole.logで下記のように表示しましょう。

  • もしも平均点を超えている場合は
    • 例)「佐藤は90で合格です。」
  • もしも平均点を下回っている場合は
    • 例)「山田は40で失格です。」

使用するJavascript・考え