1+ const numberInput = document . getElementById ( 'numberInput' ) ; //number input
2+ const powerInput = document . getElementById ( 'powerInput' ) ; //power input
3+ const result = document . getElementById ( 'result' ) ; //result display
4+ const option = document . getElementById ( 'option' ) ; //option selection
5+ let mode = option . value ;
6+ function calculateSumOfDigits ( ) { //calculate sum of digits
7+ const number = parseFloat ( numberInput . value ) ; //get number value from input
8+ const power = parseInt ( powerInput . value , 10 ) ; //get power value from input
9+ if ( isNaN ( number ) ) { //if entered number is not a number
10+ result . textContent = 'Please enter a valid number.' ;
11+ }
12+ const sum = calculateSum ( number ) ; //calculate sum of entered number
13+ result . textContent = sum ; //display result
14+ }
15+ function calculateSumOfAllDigits ( number , power ) { //calculate sum of all digits
16+ const numberString = number . toString ( ) . split ( 'e' ) [ 0 ] . replaceAll ( '.' , '' ) . replaceAll ( '-' , '' ) ; //remove non digit characters to avoid errors
17+ let sum = 0 ; //initialize sum
18+ for ( let i = 0 ; i < numberString . length ; i ++ ) { //repeat for each digit
19+ const digit = parseInt ( numberString [ i ] , 10 ) ; //convert string to integer
20+ sum += digit ** power ; //get power of digit then add digit to sum
21+ }
22+ return sum ; //return sum of all digits
23+ }
24+
25+ function calculateSumOfIntegerDigits ( number , power ) { //calculate sum of integer digits
26+ const integerString = parseInt ( number , 10 ) . toString ( ) . replaceAll ( '.' , '' ) . replaceAll ( '-' , '' ) ; //remove non digit characters to avoid errors
27+ let sum = 0 ; //initialize sum
28+ for ( let i = 0 ; i < integerString . length ; i ++ ) { //repeat for each digit
29+ const digit = parseInt ( integerString [ i ] , 10 ) ; //convert string to integer
30+ sum += digit ** power ; //get power of digit then add digit to sum
31+ }
32+ return sum ; //return sum of integer digits
33+ }
34+
35+ function calculateSum ( number ) { //calculate sum function
36+ if ( mode === 'sumOfDigits' ) { //if mode is sum of digits
37+ return calculateSumOfAllDigits ( number ) ; //return sum of all digits
38+ } else if ( mode === 'sumOfIntegerDigits' ) { //else if mode is sum of integer digits
39+ return calculateSumOfIntegerDigits ( number ) ; //return sum of integer digits
40+ }
41+ }
0 commit comments