[プログラマー]奇妙な文字を作成


問題の説明


文字列sは、1つ以上の単語から構成される.各単語は1つ以上のスペース文字で区切られます.各単語の偶数の2番目のアルファベットは大文字で、奇数の2番目のアルファベットは小文字で置換された文字列を返す関数で、解決策を完了します.

せいげんじょうけん

  • 文字列全体のパリティインデックスではなく、単語(スペース単位)に基づいてパリティインデックスを決定する必要があります.
  • 最初の文字は、0番目のインデックスとして偶数文字でなければなりません.
  • I/O例



    I/O例説明


    「tryhello world」は、3つの単語「try」、「hello」、「world」から構成されています.各単語の偶数の2番目の文字を大文字に、奇数の2番目の文字を小文字に、すなわち「Try」、「Hello」、「World」に変更します.そこで、「Try Hello World」に戻ります.

    私の答え

    function solution(s) {
      return s.split(' ').map(x => (
        x.split('').map((y, i) => ( i % 2 === 1 ? y.toLowerCase() : y.toUpperCase())).join('')
      )).join(' ');
    }
    
    console.log(solution("the hello wolrd say good bye"));
  • splitを使用して文字列を配列
  • に変換
  • 配列はmapを用いて巡回し,偶数インデックスは大文字,奇数インデックスは小文字である.
  • 配列を文字列に変換し、
  • を返します.

    改造する

    function solution(s) {
      return s.split(' ').map(x => (
        x.split('').map((y, i) => ( i % 2 ? y.toLowerCase() : y.toUpperCase())).join('')
      )).join(' ');
    }
    
    console.log(solution("the hello wolrd say good bye"));
  • i%2=1をi % 2に変換し、コードを減らします.
  • 1%2==1で、値が1の場合はtrueとなるため、小文字に変換されます.
  • 2%2==0で、値が0の場合falseとなるため、大文字に変換されます.
    ( Falsy : 0, -0, NaN, undefined, null, false, ' ' )