juan field
asked on
how can i get a 4 at the second console.log?
function sumDigits(num) {
var sNumber = num.toString();
var acc = 0;
for(var i = 0; i < sNumber.length; i ++){
if(sNumber[0] === "-"){
var negnumber = Number(sNumber[0] + sNumber[1]);
}
var posnumber = Number(sNumber[i]);
acc += posnumber;
}
return acc;
}
console.log(sumDigits(1148 ));
console.log(sumDigits(-316 )); //--> 4
var sNumber = num.toString();
var acc = 0;
for(var i = 0; i < sNumber.length; i ++){
if(sNumber[0] === "-"){
var negnumber = Number(sNumber[0] + sNumber[1]);
}
var posnumber = Number(sNumber[i]);
acc += posnumber;
}
return acc;
}
console.log(sumDigits(1148
console.log(sumDigits(-316
Here is a working script. You can make it more elegant though
https://jsfiddle.net/svermaak/nn7pq5gn/1/
https://jsfiddle.net/svermaak/nn7pq5gn/1/
console.log(sumDigits(1148));
console.log(sumDigits(-316));
function sumDigits(num) {
var sNumber = num.toString();
var acc = 0;
for(var i = 0; i < sNumber.length; i ++){
var number;
if (sNumber.charAt(i) === "-")
{
i++;
number = Number("-" + sNumber.charAt(i));
}
else
{
number = Number(sNumber.charAt(i));
}
acc += number;
}
return acc;
}
Option using operator and operand stacks
<script>
function sumDigits(dig)
{
var atorstack = [];
var andstack = [];
var n = dig.toString();
for(var i = 0; i < n.length; i++) {
if (n[i].match(/[\+-]/)) {
atorstack.push(n[i]);
}
else {
if (andstack.length == 0) {
andstack.push(n[i]);
}
else {
var op = atorstack.pop() || '+';
var and = andstack.pop();
var result = eval(n[i] + op + and);
andstack.push(result);
}
}
}
var ator = atorstack.pop() || '';
return parseInt(ator + andstack.pop());
}
console.log(sumDigits(-316));
console.log(sumDigits(-3+1-6));
</script>
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
thank you
Hi Juan,
Can you please provide feedback for the solution i gave?
Thanks in advance.
Regards,
Pawan
Can you please provide feedback for the solution i gave?
Thanks in advance.
Regards,
Pawan
Pls try this..
Open in new window