Description
Given an array of positive integers nums, return an array answer that consists of the digits of each integer in nums after separating them in the same order they appear in nums.
To separate the digits of an integer is to get all the digits it has in the same order.
- For example, for the integer
10921, the separation of its digits is[1,0,9,2,1].
Example 1:
Input: nums = [13,25,83,77] Output: [1,3,2,5,8,3,7,7] Explanation: - The separation of 13 is [1,3]. - The separation of 25 is [2,5]. - The separation of 83 is [8,3]. - The separation of 77 is [7,7]. answer = [1,3,2,5,8,3,7,7]. Note that answer contains the separations in the same order.
Example 2:
Input: nums = [7,1,3,9] Output: [7,1,3,9] Explanation: The separation of each integer in nums is itself. answer = [7,1,3,9].
Constraints:
1 <= nums.length <= 10001 <= nums[i] <= 105
Solutions
This function separates all individual digits from an array of numbers and returns them as a flat array in the original order. It works backwards through the input array, extracting each digit from right to left using the modulo operator (%) to get the last digit and integer division to remove it, pushing each digit onto a result array. Since this process naturally reverses the digit order, the function reverses the entire result array at the end to restore the correct sequence—so for example, [123, 456] becomes [1, 2, 3, 4, 5, 6].
/**
* @param {number[]} nums
* @return {number[]}
*/
var separateDigits = function(nums) {
const res = [];
for (let i = nums.length - 1; i >= 0; i--) {
let num = nums[i];
while (num > 0) {
res.push(num % 10);
num = Math.floor(num / 10);
}
}
return res.reverse();
};