
今日は、もりけん塾の新しい課題”言語チャレンジ1”に挑戦したので、学習ノートを書いていきます!
こんにちは。Webコーダーのはるです。
もりけん塾の新課題、言語チャレンジに挑戦しました。
この課題における、もりけん先生(@terrace_tec)のスタンスを補足します⏬
✅ もっといい方法や書き方、改善まで全ての人にレビューするのは大変
✅ 先生のベストの解答が塾外の誰かが見た時にそうではない
✅ 自分なりのベストを調べ尽くしてほしい
✅ サクサク進めることで言語を学ぶ楽しさを味わってほしい
【もりけん塾】言語チャレンジ 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];
この部分で使われている” … “をスプレッド構文と呼ぶそうです。
スプレッド構文 (
...
) を使うと、配列式や文字列などの反復可能オブジェクトを、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はこちら