【もりけん塾】言語チャレンジ7 – 配列をオブジェクトに変換、keyとvalueを指定② -【JavaScript】

JavaScript

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

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

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

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

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

【もりけん塾】言語チャレンジ7 – 配列をオブジェクトに変換、keyとvalueを指定 ② –

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

【課題7】
input: [“a”, “b”, “c”]
output: {sum: “abc”, length: 3}

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

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

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

配列をオブジェクトに変換、keyとvalueを指定

前回はkeyとvalueに、配列の要素とindex番号を入れたオブジェクトを作成しました。

//input: ["a", "b", "c"]
//output: { a: 0, b: 1, c: 2 }


function f(input) {
 return input.reduce((target, current, index) => {
  target[current] = index;
  return target;
 }, {})
}

const input = ["a", "b", "c"];
const output = f(input);
console.log(output);

今回はもっと簡単に表現できそうと考え、{ }で囲ってみることにしました。

{sum: input.join(""), length: input.length}

inputに配列を渡して、その中の文字を連結&lengthを取得しました。

また、今回からfunction文ではなく関数リテラルを使用してみました。

本で習ってからずっとfunction文で書いていましたが、以下の記事を見てだいぶ前から関数リテラルが主流だと知りました・・塾の皆さんそういえばみんな関数リテラルだった・・

コードが短く可読性が上がる、functionのthisの取り扱いはトラブルの元、世のJSプログラマーの多くが使用しているため他コードを読み解く時に有利などの理由があると知りました。

 

PRコード

今回はこちらでApproveいただきました🎉

//input: ["a", "b", "c"]
//output: {sum: "abc", length: 3}

const f = (input) => {
 return {sum: input.join(""), length: input.length}
};

const input = ["a", "b", "c"];
const output = f(input);
console.log(output);

//

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

あとがき

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

コードを試し書きできるツール”stackbiltz”を新たに使用しているので、貼ってみます↓

今日は以上です。

//

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

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