TIL_210310



きょう習った

  • Object.entries()
  • 難題:コプリット18号
  • 難題:コプリット20号
  • 難題:コプリット21号
  • Object.entries()


    定義:オブジェクトが所有するすべてのプロパティをキー値ペアで返します.
    testobj = {
      a: 1,
      b: 2,
      c: 3
    }
    
    Object.entries(testobj)
    
    (3) [Array(2), Array(2), Array(2)]
    0: (2) ['a',1]
    1: (2) ['b',2]
    2: (2) ['c',3]

    共通の


    18日

    function getAllButLastElementOfProperty(obj, key) {
    
      let maybeArr = obj[key];
    
      if(!Array.isArray(maybeArr) || maybeArr.length === 0) {
        return [];
      } else {
        return maybeArr.slice(0, -1);
      }
    }
    一般的な内容は理解していますが、ポップで解こうと思っていたら、元の配列に触れ続けられないというエラーが発生しました.後でフロントを利用して知ったのですが・・・
    これは前に習ったことです.popは元の配列を修正し、sliceは元の配列に触れず、独自の配列を持つ.だから間違ったpopをsliceに修正して解決しました.

    21日

    function mostFrequentCharacter(str) {
      let obj = {};
      let max = 0;
      let maxStr = '';
      let splitStr = str.split(' ');
      let newStr = splitStr.join('');
      
      for (let key of newStr){ 
        if(obj[key]){ 
          obj[key] += 1; 
        } else {
          obj[key] = 1; 
        }
        
        if (max < obj[key]){
          max = obj[key]; 
          maxStr = key;
        }  
      }
      return maxStr;
    }
    理由もなく最初は二重複文で解いたので、そんなに複雑に考える必要はありません.
    これはあとで復習しますね.