Fラン大卒の海外就職

英語、カナダ生活、ウェブデザイン、学校とか趣味も

コーディングチャレンジ1、2、3日目の解説やってく

f:id:sgwshu:20181012081219j:plain
どうもこんにちは。ネタが特にないので終わったコーディングチャレンジの解説をやって行こうと思います。

コーディングチャレンジにとは

こちらの記事からどうぞ!
www.fran-shushoku.com
今回は1、2、3日まとめて行きます。
とりあえずすべての問題で共通なのはこのGRIDと言う配列を使って問題を解いていきます。

const GRID = [
  ["", "", "", "^", "", "", "", "", "", ""],
  ["", "", "v", "", "~", "", "", "", "", ""],
  ["", "v", "", "", "^", "^", "", "", "", ""],
  ["", "", "", "", "^", "^", "", "", "", ""],
  ["", "", "", "", "", "", "", "", "v", ""],
  ["", "", "", "", "", "", "", "", "", ""],
  ["", "", "", "", "", "", "", "", "", ""],
  ["", "^", "~", "~", "", "", "", "^", "", ""],
  ["", "^", "", "~", "~", "", "", "", "", ""],
  ["", "^", "", "", "~", "~", "", "", "", ""],
];

イメージとしてこんな感じのグリッドが提供されてます。(あくまでイメージ)
f:id:sgwshu:20181012070843p:plain
それでは早速解説します。もしろん英文で聞かれますがそこははしょります。

チャレンジ1日目

単純にrow(横列)の数を数える関数を作れという問題です。
横列はアルファベットで数字はcolumn(縦列)っぽいので、単純に

function countRows(){
  return GRID.length;
}

これで結果は10です。ちなみにただ単に数値の10を返す関数を作っても正解になったので多分書いたコード自体は評価されてないんじゃないかと思います。

チャレンジ2日目

まぁrowの数取れと来たらcolumnも取れってなりますよね。ってことでcolumn数をとります。row配列の中に入ってる配列なのでこれまた単純にGRID配列の1番最初の配列0をしてして取れば取れます。(最初なので1に、なるはずですがプログラミングの基本として0も数値として扱われます、なので1は事実上の2)

function countRows(){
  return GRID[0].length;
}

チャレンジ3日目

問題はGRID内の配列すべてをカウントする式を表示せよとのことです。グリッドの縦横数が同じなので10x10をすればすべての数値が出るはずです。
問題では掛けるまではしなくていいみたいなのでこの10x10と言うもの自体を文字列として返す関数を作ります。
縦10と横10を使いたいので前回作った関数2つを関数を呼び出してそれを文字列にしてxと一緒に出力する関数を作りたいと思います。

function totalCells(){
  var rows = countRows();
  var cols = countColumns();
  var totalCells = cols*rows;
  return totalCells;
}

このような感じで関数を関数に渡す関数(関数って言葉多すぎる(笑))を作って答えは正解となります。
この3日間のチャレンジで復習させたかったのは配列と関数作成、関数の呼び出しかと思います。
難しさ的にはほんとにJavaScriptのチュートリアル一通り終わらせた人がやるとすごく楽しいんじゃないかと思います。
それではまたSeee Yaaaaaaa!!!!