Algorithm) Codekata_Day 2


❓ Question


整数値をパラメータとして関数を受信し、それを反転して返します.
ex) 1234 => 4321 / -1234 => -4321 / 1230 => 321

📝 My Solution

  • {整数}をパラメータとする関数を生成する
  • 数字を文字に変更
  • 文字をタイルに変更
  • アレイのインデックスを反転
  • 反転したインデックスを統合
  • 併合文字を数字に変更
  • 負数であれば配列から「-」を削除し、再び4番目に移動
  • 変更後の数字に-1を乗じて負数に変更
  • const reverse = x => {					// 1
      const changeString = x.toString();			// 2
      const arrayString = changeString.split('');		// 3
      if (x < 0) {
        arrayString.shift('-')				// 7
        const reverseString = arrayString.reverse();	// 4
        const joinString = reverseString.join('');		// 5
        const changeNumber = Number(joinString) * -1	// 8
        return changeNumber;
      } else {
        const reverseString = arrayString.reverse();	// 4
        const joinString = reverseString.join('');		// 5
        const changeNumber = Number(joinString);		// 6
        return changeNumber;
      }
    }

    ▪️ Solution review


    それぞれの過程を分けて、どのように動作を完成させるかを考えます.
    長いハーモニーが出てきて、
    受信パラメータが負の場合を考慮すると、同じコードが繰り返される可能性があります.
    最終的に正しい結果値が得られた.

    📝 Another Solution

    const reverse = x => {
      let reverseNum = parseInt(x.toString().split('').reverse().join(''))*Math.sign(x);
      return reverseNum;
    }

    ▪️ Solution review


    1つのパラメータを使用して複数のメソッドを適用する方法:
    知らないところもありますが、この方法で書けば
    コードの長さを短くしたり、迅速な結果値を得たりすることができます.
    次はコードアプリケーションの順序です.
  • x.toString():xを文字に変更
  • .split(''):配列に一字ずつ挿入
  • .reverse():逆さまに並ぶアルファベット順
  • .join(''):配列中のすべての文字を一体にする
  • parseInt():解析文字で特定の真数値の整数を返す
  • Math.sign(x):xを返す記号(表裏+1/負裏-1)
  • parseInt()の場合、ある文の特定の真数値を返す整数を表します.
    デフォルト値は10進数文字ではないので、ハイブリッド文字の文といえば、
    あなたが望んでいる本当の数値を表示したほうがいいです.