 # JavaScript: Find the number of times to replace a given number with the sum of its digits until it convert to a single digit number

## JavaScript Basic: Exercise-105 with Solution

Write a JavaScript program to find the number of times to replace a given number with the sum of its digits until it convert to a single digit number.

Pictorial Presentation: Sample Solution:

HTML Code:

``````<!DOCTYPE html>
<html>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width">
<title> Find the number of times to replace a given number with the sum of its digits until it convert to a single digit number</title>
<body>

</body>
</html>
```
```

JavaScript Code:

``````function digit_to_one(num) {

var digitSum = function(num) {

var digit_sum = 0;
while (num) {
digit_sum += num % 10;
num = Math.floor(num / 10);
}

return digit_sum;
};

var result = 0;

while (num >= 10) {
result += 1;
num = digitSum(num);
}

return result;
}

console.log(digit_to_one(123))
console.log(digit_to_one(156))
``````

Sample Output:

```1
2
```

Flowchart: ES6 Version:

``````function digit_to_one(num) {

const digitSum = num => {

let digit_sum = 0;
while (num) {
digit_sum += num % 10;
num = Math.floor(num / 10);
}

return digit_sum;
};

let result = 0;

while (num >= 10) {
result += 1;
num = digitSum(num);
}

return result;
}

console.log(digit_to_one(123))
console.log(digit_to_one(156))
``````

Live Demo:

See the Pen javascript-basic-exercise-105 by w3resource (@w3resource) on CodePen.

What is the difficulty level of this exercise?

﻿

## JavaScript: Tips of the Day

Parameter's value

```function getItems(fruitList, ...args, favoriteFruit) {
return [...fruitList, ...args, favoriteFruit]
}

getItems(["banana", "apple"], "pear", "orange")
```

...args is a rest parameter. The rest parameter's value is an array containing all remaining arguments, and can only be the last parameter! In this example, the rest parameter was the second parameter. This is not possible, and will throw a syntax error.

```function getItems(fruitList, favoriteFruit, ...args) {
return [...fruitList, ...args, favoriteFruit];
}

getItems(['banana', 'apple'], 'pear', 'orange');```
The above example works. This returns the array [ 'banana', 'apple', 'orange', 'pear' ].

Ref: https://bit.ly/3jFRBje