Computer >> 컴퓨터 >  >> 프로그램 작성 >> JavaScript

JavaScript에서 숫자 배열을 개별 숫자로 분할하려면 어떻게 해야 합니까?

<시간/>

Number 리터럴 배열이 있고 splitDigit() 같은 함수를 작성해야 합니다. 이 함수는 이 배열을 가져와서 10보다 큰 숫자가 한 자리 숫자로 분할되는 Numbers 배열을 반환합니다.

예를 들어 -

//if the input is:
const arr = [ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106 ]
//then the output should be:
const output = [ 9, 4, 9, 5, 9, 6, 9, 7, 9, 8, 9, 9, 1, 0, 0, 1, 0, 1, 1,
0, 2, 1, 0, 3, 1, 0, 4, 1, 0, 5, 1, 0, 6 ];

이 함수의 코드를 작성해 보겠습니다. Array.prototype.reduce() 메서드를 사용하여 숫자를 분할하겠습니다.

예시

const arr = [ 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106 ]
const splitNum = (n, res = []) => {
   if(n){
      return splitNum(Math.floor(n/10), [n % 10].concat(res));
   };
   return res;
};
const splitDigit = (arr) => {
   return arr.reduce((acc, val) => acc.concat(splitNum(val)), []);
};
console.log(splitDigit(arr));

출력

콘솔의 출력은 -

[
   9, 4, 9, 5, 9, 6, 9, 7, 9,
   8, 9, 9, 1, 0, 0, 1, 0, 1,
   1, 0, 2, 1, 0, 3, 1, 0, 4,
   1, 0, 5, 1, 0, 6
]