9月25日初回JSテスト


数日も経っていないような気がしますが、
もう上のコードで2週間勉強しました.
毎日新しいことを勉強して、良い人と一緒にいて、
時間が経つのが早すぎる.
週末も含めて、ほぼ毎朝9-10時の間に来て、夜10時以降に行きます.
しかし、私はやはりここにもう少し滞在したいです.時間が足りないような気がします.
毎日与えられる課題をこのまま終わらせないでください.
毎晩ブログで短く整理すべきだと思います.
25日の金曜日はちょうどウェコドの正規授業の2週目が終わる日です.
その間、Repl.ITサイトで解答したJavaScript問題をもとに、5問の試験を行いました.
今度の試験は点数で人を区別するのではなく、
これはjavascriptのどの部分をよく知っているのか、どの部分を知らないのかを測るためです.
だから私が作った論理を振り返って、どの部分がもっと大きく発展するかを評論したいと思っています.
問題はすべてJavaScriptで関数を実現し、全部で5つの問題があります.
問題1)
これは偶数であるか否かを判別する関数is偶数の問題である.
確かに、論理やアルゴリズムを書く問題に直面したほうがいいと思います.
私が問題にぶつかったとき、以前解いた問題を思い出した.
if文で除算演算子を使うと良いと思います.
私が作った関数は以下の通りです.
function is_even(n) {
  if (n % 2 === 0) {
    return "짝수 입니다"
  } else {
    return "짝수가 아닙니다"
  }
}

console.log(is_even(11));
もちろん、ある問題を利用するための関数です.
この論理はよく、見分けの悪いキーですが、
偶数かどうかを判断するための関数です.
きれいで簡単に編んであるようです.
しかし、return値のみを出力する関数にすぎません.
次のように3つの演算子を使うともっといいです.
const is_even = n => n % 2 === 0 ? "짝수 입니다" : "짝수가 아닙니다";
問題2)
文字列が指定されている場合は、「-」に基づいてget prefix関数を作成し、前の文字列を返します.
文字分割はsplitで行い,その結果値は配列形式で格納される.
したがって、与えられたstringをsplitに分割し、インデックス[0]号を返せばいいと思います.
私が作った論理は以下の通りです.
function get_prefix(str) {
  const dividedArr = str.split('-');
  return dividedArr[0];
}

console.log(get_prefix('BTC-KRW'));
うん.これはarrow関数で実現できるようですが、
コンソールで見ると、いつも「const divised arr」のcontが予想していなかったタグのエラーになります.
arrow関数については、さらに理解してからもう一度試してみる必要があります.
変更
矢印関数の使い方を間違えたかもしれません.
run JSでエラーチェックを続け、各種修復を行いましたが、
私が欲しい簡単な論理でよく修正されました.
const get_prefix = str => str.split('-')[0];

console.log(get_prefix('BTC-KRW'));
問題3)
これはチップと税金以外の食事代で、チップと税金を含む総食事代を返す「computer total」関数を書く必要があります.
Notes:
税金9.5%のチップは15%です.
チップを計算するときは税金を計算しないでください.
問題を読むときは、税金とチップを計算する関数を関数に作成し、加算した値をすべて返せばいいと思います.
私が作った関数は以下の通りです.
function calculate_total(mealPrice) {
  const tax = mealPrice * 0.095;
  const tip = mealPrice * 0.15;
  
  return (mealPrice + tax + tip);
}

console.log(calculate_total(20));
今から見れば、税金とチップを計算する関数を単独で作成するわけではありません.
戻り行に乗算演算子とプラス記号演算子を使用するだけです.
矢印機能にすればもっときれいになります
次のように変更します.
const calculate_total = mealPrice => mealPrice + (mealPrice * 0.095) + mealPrice * 0.15;

console.log(calculate_total(20));
修正時に知った事実!
arrow関数内でカッコなしに戻りを作成するとエラーが発生し、戻りを作成しない場合は計算を入力し、計算値も出力します.
(カッコ内にreturnを作成すると、関数は正常に動作します.)
問題4)
わあ、全体の問題の中で、これは一番難しいです.
「get find」関数を作成し、指定した文字列に表示される最初の位置を返します.
Notes:
文字列に複数の文字が表示されている場合は、最初に表示された場所を返す必要があります.
文字列に文字が存在しない場合は、-1を返す必要があります.
indexOf関数は使用しないでください.
例:
const output = get_find('a', 'I am a hacker')
console.log(output) // --> 2
indexOfを使用して読み取りを試みていますが、NoteにはindexOf関数を使用しないことが要求されています.ううう
だからずっと問題を解いていたので、この問題に10分以上もつかまって、5つの問題を解いてから帰ってきて問題を解いていました.
まず、私が書いた関数は以下のように、雑然としていて、あまり満足していないように見えます.
function get_find(char, str) {
  const dividedStr = str.split('')
  let indexNum = ""
  
  for (let i in dividedStr) {
    if (char === dividedStr[i]) {
      indexNum = parseInt(i)
      break;
    } 
    if (char !== dividedStr[i]) {
      indexNum = -1
    }
  }
  return indexNum;
}

// get_find('a', 'spplea is good');
get_find('a', 'spples is good');
この問題はよく考えてから,ほかの論理を考えなければならない.
問題5)
...... 正直、他の人より早く問題を解決したいのですが、
より効率的な論理を考えるよりも、与えられた問題をより速く解決します.
これはfind longth word関数を記述する問題であり,与えられたリストで最も長い単語を見つけることができる.
最初は各要素の長さ順に並べ替えられ,配列の最後のインデックスだけを出力すればよいと考えられる.
ただし、「各要素の長さ順にソート」する方法は見つけにくい.
(存在しないかも…)
だから前にRefitで作った石のハサミの布の問題のようです.
与えられた配列の要素が多くなると、関数は使用できません.
私はこの論理が好きではありません.
まず、私が書いた関数は以下の通りです.
function find_longest_word(arr) {
  // let longest_word = ''
  
  if (arr[0].length > arr[1].length) {
    return arr[0]
  } else {
    return arr[1]
  }
  if (arr[0].length > arr[2].length) {
    return arr[0]
  } else {
    return arr[2]
  }
  if (arr[1].length > arr[2].length) {
    return arr[1]
  } else {
    return arr[2]
  }
}

const arr = ["PHP", "Exercises", "Backend"]

find_longest_word(arr)
和arrow関数を使用して関数の長さを短縮し、いくつかの要素があっても実行できる関数に変更します.
まずarrayのlongthでsort elements of arrayを検索し,配列中の要素の長さに基づいて配列を逆ソートする方式が現れた.
回答时に焦りすぎて検索がうまくできませんでした.
だからコードを作るときは絶対に焦らないでください.
今Westagramやってる時は他の人より遅いと思って焦ってる気持ちで和音を編んでるから違和感がある
十分に考え、繰り返し考え、試行錯誤し、効率的なコードを作るように努力しなければならない.
いずれにしても、修正されたコードは次のとおりです.
const arr = ["PHP", "Exercises", "Backend"]

const find_longest_word = arr => {
arr.sort((a, b) => b.length - a.length);
return arr[0];}

find_longest_word(arr)
arrを長さで並べ替え、最初の要素を返します.
嬉しいです^-^
コードをより簡単に、より直感的に再構築するためには、変更を継続する必要があります.
(9月28日追加)
JS 5問題コードコメント
林秀賢とコードコメント
本当に不思議なことに、同じ入力値で同じ出力値を生成する関数です.
誰もが異なる関数の内容を持っています.
コメントコードが面白いので、
他の人のコードと彼らの論理と考えから多くのことを学びました.
第四題
秀賢は簡単に4番の質問に答えた.
思いもよらなかった方法search()を使用して、
文字列内の文字を検索できる関数を構成しました.
その関数を2行に再構築した.
function get_find(char, str) {
return str.search(char);
}
waarrow関数で再包装した後、1行しか構成されていません.ははは
const get_find = (char, str) => str.search(char);
.search()メソッドは、Stringオブジェクト間で同じオブジェクトを検索する検索を実行します.