作成TIL 2021 10/6



  • 再帰:すべての問題を1つの論理で解決してみます.

  • アレイ再帰関数
  • function arrSum(arr) {
      if(!arr.length) {
        return 0
      }
      const head = arr[0];
      const tail = arr.slice(1);
      return head + arrSum(tail) 
      // TODO: 여기에 코드를 작성합니다.
    }
  • arrSum(arr)はarrの頭部にarrSum(tail)を加えることによって得ることができる.
  • const head = arr[0];
    const tail = arr.slice(1);
    arr=[2,4,5,7].
    最初の関数で実行される場合、head=2、tail=[4,5,7].
    2番目の関数で実行される場合、head=4、tail=[5,7].
    3番目の関数で実行される場合、head=5、tail=[7]となります.
    if(!arr.length) {
        return 0
    }
    上記の条件のためarr.length値が0の場合、0が返されます.
    4番目の関数で実行する場合、head=7、tail=0です.
    だから順番2+4+5+7のように加算します
  • if条件文表現(真実値/虚偽値)
  • if(!arr.length) = if(arr.length ===0)  // 0 falsy 한 값
    if(arr.isEmpty()) = if(arr.isEmpty() === true) // true truty한 값
    デバッグ
  • Java(debugger)
    開発者コンソールで関数を記述すると、次のようにデバッグできます.
  • 論理乗算論理
  • 論理乗算:すべての値がtrueの場合、値はtrueです.
    function and(arr) {
      if(arr.length === 0){
        return true;
      }
      const arr1 = arr[0];
      const arr2 = arr.slice(1)
      return arr1 && and(arr2)
      // TODO: 여기에 코드를 작성합니다.
    }
    arr1 = true
    // true
    arr2 = true
    // true
    arr3 = false
    // false
    arr1 && arr2 && arr3
    // false
    論理:trueが1つしかない場合、値はtrueです.
    function or(arr) {
    if(arr.length === 0){
        return false;
      }
      const arr1 = arr[0];
      const arr2 = arr.slice(1)
      return arr1 || or(arr2)
      // TODO: 여기에 코드를 작성합니다.
    }
    
    ar = false
    false
    ar2 = false
    false
    ar || ar2
    false
    ar3 = true
    true
    ar || ar2 || ar3
    true
  • 再帰関数のみを使用して、すべての重複vs再帰文と重複文を組み合わせて使用する方法