[CodeKata JS] Training JS #14: Methods of Number object--toString() and toLocaleString()

ryan·2021년 2월 27일
0

CodeKata JS

목록 보기
6/26
post-thumbnail

Lesson

이번에는 Number 객체의 두 가지 유용한 메서드인 toString()toLocaleString()에 대해 배워보겠습니다. 두 가지 방법의 기본 사용법은 숫자를 문자열로 변환하는 것입니다. 다음을 보세요:

var num=111;
var a=num.toString(), 
    b=num.toLocaleString(), 
    c=num+""
console.log([a,b,c]) // 세 변수들을 배열에 담으면, 작은 따옴표을 볼 수 있습니다.
// output: [ '111', '111', '111' ]

숫자를 문자열 표현으로 변환하려는 경우 일반적으로 이러한 방식으로 얻은 결과가 동일하다는 것을 알 수 있습니다. 저는 게으르기때문에 마지막 방식을 사용하는 것을 좋아합니다 ;-)


하지만, 이 두 가지 방법은 다른 용도로도 사용됩니다.

toLocaleString()을 사용하면 숫자를 문자열로 변환했습니다. 얻은 결과는 로컬 숫자 형식의 순서입니다.

let num = 123456789
console.log(num.toLocaleString()); // '123,456,789'

그리고 Number 객체의 toString()은 더 특별한 용도로 사용됩니다. 기본 출력에 따라 다른 문자열이 사용됩니다.

NumberObject.toString(radix)

radix는 선택적 매개 변수입니다. 이것을 무시하면 출력은 기본 십진수(decimal)가됩니다. 그렇지 않은 경우 다음과 같습니다:

var num=111;
var a=num.toString(2), 
    b=num.toString(8), 
    c=num.toString(16), 
console.log([a,b,c])
//output: [ '1101111', '157', '6f' ]

각 변수들은 2진수, 8진수 및 16진수로 변환됩니다.

자, 수업은 여기까지입니다. Number .toString()으로 문제를 풀어보세요.


Task

colorOf 함수는r, g, b라는 3개의 매개 변수를 받아들입니다. 이 매개 변수들은 빨간색,녹색 그리고 파란색의 색상 값을 의미합니다. 값의 범위는 0-255입니다.

toString(16)을 사용해서 r, g, b 숫자를 16진수 문자열 형식으로 변환하세요. 마지막으로 그것들을 웹 색상 코드에 결합하여 반환하세요.

색상 코드는 "#"로 시작해야합니다. 그런 다음 색상 당, 2개의 문자를 사용하세요.

예시:

colorOf(255,0,0) should return "#ff0000"
colorOf(0,111,0) should return "#006f00"
colorOf(1, 2 ,3) should return "#010203"

Initial Setting

function colorOf(r,g,b){
  //coding here
  
}

My Solution

function colorOf(r,g,b){
  let red = r.toString(16);
  let green = g.toString(16);
  let blue = b.toString(16);
  
  red = red.length < 2 ? '0' + red : red;
  green = green.length < 2 ? '0' + green : green;
  blue = blue.length < 2 ? '0' + blue : blue;
  
  let color = '#' + red + green + blue;
  return color
}

Solution 1 of Another User

const colorOf = (...rgb) => '#' + rgb.map(x => `0${x.toString(16)}`.slice(-2)).join('')

Solution 2 of Another User

function colorOf(r,g,b){
  var f = function (x) {
    return (x<16 ? '0' : '') + x.toString(16) 
  };
  
  return "#" +  f(r) + f(g) + f(b);
}

Solution 3 of Another User

function colorOf(r,g,b)
{
   return "#" + toHex(r)+ toHex(g)+ toHex(b);  
}

function toHex(n)
{
  var result = n.toString(16);
  return result.length == 1 ? "0" + result : result;  
}

링크

profile
👨🏻‍💻☕️ 🎹🎵 🐰🎶 🛫📷

0개의 댓글