TIL 12 l Javascript Test


2週間の予科課程を終えてテストを行い、学習と感じた文章を記録します!

1.偶数か否かを判別する関数isEvenを書いてください。

console.log(isEven(11)) // --> "짝수가 아닙니다."
console.log(isEven(10)) // --> "짝수 입니다."
マイコード
function isEven(num) {
    if ((num%2) === 1) {
    return `짝수가 아닙니다.`;
  } else {
    return `짝수 입니다.`;
  }
}
✔最初の問題は条件によって値を出力することです.ここで、私はまず括弧でnum%2を囲みます.
✔祿祿祿祿祿祿鹿祿祿鹿祿鹿鹿鹿鹿鹿

2.calculateTotal関数を作成してください。


チップと税金に加えて、calculateTotal関数はチップと税金を含む総食事費を返します.
Notes:
税金9.5%のチップは15%です.
チップを計算するときは税金を計算しないでください.
console.log(calculateTotal(20)); // --> 24.9 
マイコード
function calculateTotal(amount) {
  return amount + calculateTip(amount) + calculateTax(amount);
}

function calculateTip(amount) {
  return amount*0.15;
}

function calculateTax(amount) {
  return amount*0.095;
}
税金、チップを計算する機能を含む関数をそれぞれ宣言した.これらの機能を組み合わせて、結果を導き出すことができるcalculateTotal関数において、税金、チップを計算する機能の関数を戻り値として出力する.
✔勘定科目機能実装関数によれば、個人的にはメンテナンスに役立つと思いますので、それを適用してみます.

3.getPrefix関数を作成します。


文字列が指定されている場合は、-に基づいて前の文字列を返します.
console.log(getPrefix('BTC-KRW')) // --> BTC
最初の私のコード
function getPrefix(str) {
  let dash = str.indexOf("-");
  threeLetter = str.slice(0, dash);
}

console.log(getPrefix('BTC-KRW')) // --> BTC
✔️ indexOf
indexOf()メソッドは、指定した要素の最初のインデックスを配列に返し、存在しない場合は-1を返します.ソース
✔️Array.prototype.slice(せん断の開始位置、せん断の終了位置)
slice()メソッドは、ある配列の開始から終了(終了を含まない)までの浅いコピーを新しい配列オブジェクトソースに返します.
📍 つまり、()の中の終端位置は少し混同されていますが、終端位置の文は含まれていません.
✔勘定科目の2つの概念に基づいて、関数を宣言してみます.アクセス方法は、-を見つけ、その方法に従って文字列を切り取り、必要な場所に出力することである.
😢 解答を解くのに時間がかかったのは、出力に必要な値がlet threeLetter = str.slice(0, dash);のように変数化されておらず、出力もされていないため、出力したい場合はreturnを前に付けるべきだが、何の処理もないため、実現関数はない.関数の論理を明確に理解してこそ、欲しい結果を得ることができることを覚えておいてください.
最終コード
function getPrefix(str) {
  let dash = str.indexOf("-");
  return str.slice(0, dash);
}
小米コード:コードshare,review
function getPrefix(str) {
  // 아래 코드를 작성하세요.
  const string = str.split("-");
  return string[0]
}
✔️ String.prototype.split()
split()メソッドは、指定した区切り記号を使用してStringオブジェクトを複数の文字列に分割します.
✔朕はsliceで実現しましたが、小米はSplitを使って関数を最初の配列の値として定義しました.

4.getFind関数を作成します。


文字と文字列が指定されている場合、getFind関数は、指定された文字列に表示される最初の位置を返します.
Notes:
文字列の最初の文字のインデックス値は0です.文字列に複数の文字が表示されている場合は、最初に表示された場所を返す必要があります.文字列に文字が存在しない場合は、-1を返す必要があります.
重要だ!indexOf関数は使用しないでください.
const output = getFind('a', 'I am a hacker')
console.log(output) // --> 2
マイコード
function getFind(filter, sentence) { 
  let stringtoArray = sentence.split('');
  
  for (i=0; i<stringtoArray.length; i++) {
    if( stringtoArray[i] === filter) {
      return i
    }
  }
  
  if (stringtoArray[i] !== filter) {
    return -1
  }
}
✔1)配列を空白単位に分割し,2)その配列の値とパラメータとして受信したパラメータの値が同じかどうか,3)インデックスを繰り返し確認する.そこで,splitとfor文を用いて問題を解決することにした.
✔」はまずsplitで文を配列のインデックスに切り捨て、該当する値がフィルタに入力した値と同じであればi(配列のインデックス番号)を出力し、そうでなければ-1の論理を出力します.
😢 論理は生成しやすいが,出力戻り値には問題がある.私は頭を絞って、stringtoArray[i]を出力してこの値のインデックス番号を検索したいと思っています...!i自体がインデックス番号です...私は知らない方法を探していたが、だんだん崩壊の道を歩んできた...陥落した.
智秀さんコード.
function getFind(filter, sentence) { 
 if (sentence.includes(filter)) {
   for(let i =0; i < sentence.length; i++) {
     if (sentence[i] === filter) return i;
    }
  } else reutrn -1;
}
✔朕の使い方で結果が出た.すなわち,文のインデックス値とフィルタとして受信したパラメータ値を同時に出力できる論理を実現する.
✔️Array.prototype.includes()
include()メソッドは、配列に特定の要素が含まれているかどうかを決定するために使用されます.ソース
ソミのパスワード
function getFind(filter, sentence) { 
  return result = sentence.search(filter);
}
✔️ String.prototype.search()
search()メソッドは、正規表現とこのStringオブジェクトとの間で検索を行い、同じオブジェクトを検索します.
✔朕の検索方法を用いて結果を導いた.本当に驚くほど簡単なハーモニーでしたパラメータを配列に変換する必要はありません.ソース

find longth word関数を作成してください。


指定したリストで最も長い単語を見つけるために関数を完了してください.
console.log(find_longest_word(["PHP", "Exercises", "Backend"])) 
// --> "Exercises"
マイコード
function find_longest_word(arr) {
  let indexMin = arr[0];
  
  for (i=0; i<arr.length; i++) {
    if(indexMin.length < arr[i].length) {
      return arr[i];
    } 
  }
}
この問題を解決するために,論理,1)標準配列を決定し,2)インデックス長を検索し,各配列を比較した.
ソミのパスワード
function find_longest_word(arr) {
  let maxLength = arr[0].length
  for (let i in arr){
    if (arr[i].length>maxLength){
      maxLength = arr[i].maxLength;
      return arr[i];
    }
  }
}
【リードID】indexlengthを含む値を変数として宣言するコードは私とは違います.

📍 2021.0619. 追加)やはり開発者文化は最高です…!


智秀は俺のコードと昭弥のコードが効かないことに気づいた…!論理的には問題ないのでパスしましたが、関数は実際には実行されませんでした.
そこで改めてコメント.
▼▼▼▼私の新しいコメントのコード
function find_longest_word(arr) {
  let indexMin = arr[0];
  
  for (i=0; i<arr.length; i++) {
    if(indexMin.length < arr[i].length) {
      indexMin = arr[i];
    } 
  }
  return indexMin;
}
に質問
1)ifのコードブロック{}にarr[i]に出力
出力が65379;」4|,iは後ろのアレイに回転できません.アレイの長さが標準」4|より大きい限り、出力されます.
2)戻り位置.
したがって,if文のコードブロックにその結果を配置し,さらに次のループを迂回することなく値を出力する.
解決策
1)arr[i]=arr[0]|をコードブロックに書き込み、iが配列の末尾に戻るようにする.これによりindexMin値はfor文の条件に従って配列をループすることができる.
2)if文で返すように結果を直接変更し、関数は終了するので、文の外で返すように変更します.
#新しいコメントの昭弥のコード
function find_longest_word(arr) {
  let num = arr[0];

  for (let i in arr){
    if (arr[i].length > num.length){
      num = arr[i];
    }
  }
  
  return num;
}
私の論理と全体的に似ていますが、以前arr[i]と宣言した部分をindexMinに変更し、コードを記述します.出力したい答えは長さではないので:)
これから宿題をするとき、同期の人とコードを共有して、もっと効率的で直感的なコードを作りたいと思っています.だから、勇気を出して小米と智秀にコードshare後のコメントを要求して、とても有益です.一つ質問があり、いろいろ解法があり、それを共有する文化があってよかった…!