【もりけん塾】言語チャレンジ 1をやってみた -文字列を配列に変換する-【JavaScript】

JavaScript

今日は、もりけん塾の新しい課題”言語チャレンジ1”に挑戦したので、学習ノートを書いていきます!

こんにちは。Webコーダーのはるです。

もりけん塾の新課題、言語チャレンジに挑戦しました。

この課題における、もりけん先生(@terrace_tec)のスタンスを補足します⏬

✅ inputとoutputの型が合っていれば、答えに問題はない
✅ 
もっといい方法や書き方、改善まで全ての人にレビューするのは大変
✅ 先生のベストの解答が塾外の誰かが見た時にそうではない
✅ 
自分なりのベストを調べ尽くしてほしい
✅ サクサク進めることで言語を学ぶ楽しさを味わってほしい

【もりけん塾】言語チャレンジ 1をやってみた

今回、取り組んだ課題はこちらです。

inputの値をoutputの値として出力すること

・関数の引数に入力を渡し、実行した結果(出力)をconsole.logで示してください

(もりけん先生の言語チャレンジより)

文字列を配列に変換する

文字列”abc”を配列に変換するために、

split()メソッドを発見したので使ってみることにしました。

 String を指定した区切り文字列で分割することにより、文字列の配列に分割します。

 

言語チャレンジのページに、解答例があったので同じ形式にしてみることにしました。

/* 例 */
function input (pram){ 
  // ここを実装して返す
  // pramを出力の値に変換する
  return "出力" // 出力値
} 

console.log(input("入力")) // 入力値を実行した結果をoutput。値を出力する

input関数の引数に対してsplitメソッドを使用してみます。

function input(pram){
  return pram.split('');
}


console.log(input("abc")); //output ["a", "b", "c"]

今回はこれでApproveいただきました。

解答の形式が違っていたっぽい

その後Discordで発見した解答例。。

function f(input){ 
  // ここを実装して返す 
  // inputをoutputの値に変換する
  const result = input + "b"
  return result // "ab" 出力値
} 

const input = "a"
const output = f(input) // 入力値を関数に渡す 
console.log(output) // input: "a" // output "ab"

さっきのコードでもApproveだったけど、この形式が正規だったみたい。。
ちゃんと遡らなきゃダメだな。。

Approve後だけど、書き直してみる

function f(input) {
 return input.split('');
}

const input = 'abc';
const output = f(input);
console.log(output);

これがより良い解答だったのかもしれない・・・

次の課題はこういう形式でPRしてみます🙇‍♀️

他の塾生さんのコードを見てみることに

今回、言語チャレンジの環境構築でお世話になったもなかさん(@ruby443n)の言語チャレンジ1の回答を思い立って拝見させていただくことにしました🙇‍♀️ (環境構築の続きが解答になっていたので見ないようにしていた・・笑)

const a = (b) => [...b];
const b = a("ABC");
console.log(b);

自分には全然わからないコードが書いてありました・・笑

せっかく拝見させていただいたので、このコードを理解してみることにしました。

const a = (b) => [...b];

この部分で使われている” … “をスプレッド構文と呼ぶそうです。

MDN

スプレッド構文 (...) を使うと、配列式や文字列などの反復可能オブジェクトを、0 個以上の引数 (関数呼び出しの場合) や要素 (配列リテラルの場合) を期待された場所で展開したり、オブジェクト式を、0 個以上のキーと値の組 (オブジェクトリテラルの場合) を期待された場所で展開したりすることができます。

引数や要素を必要な場所で展開することができる・・・!なるほど。

const a = (b) => [...b];

アロー関数にいまだにあまり慣れていなくて、復習のために一度書き直してみました。無名関数を変数に代入しているからこういうことかな!

const a = function(b){
  return [...b];
}

アロー関数の復習のために拝見したサイト🙇‍♀️

スプレッド構文を使用することで、引数に入れた値を配列の中で展開してくれるのですね。便利だ・・・!

const a = (b) => [...b];
const b = a("ABC"); //引数にABCを入れる
console.log(b); //引数ABCが配列の中で展開される・・・!

 

//

学習に使用している本は、もりけん先生推奨の”JavaScript本格入門”です。

あとがき

お忙しい時間を割いて課題を確認してくださったもりけん先生(@terrace_tec)ありがとうございました!!

Approve後に別の方の解答を拝見させていただくことで、さらに勉強になりました!

スプレッド構文、初めて知ったなぁ。

私の課題のリポジトリはこちらから確認できます↓

 

今日は以上です。

//

【もりけん塾で勉強しています】

もりけん先生(@terrace_tec)のHPはこちら

タイトルとURLをコピーしました