how to convert “1+4+5” sgtring to integer and get answer
what have you tried?
not able to figure out the same
I tried doing
t.map((c,i)=>{
if(c=="+"){
s=s+parseInt(t[i-1])+parseInt(t[i+1])
}
else if(c=="-"){
s=s+parseInt(t[i-1])-parseInt(t[i+1])
}
})
you can’t use map
on a string, is that your whole code?
Maybe along these lines …
let t = "1+2+3";
// 1. Split the string into an array, since map is an array method
t = t.split('');
// 2. Initialize s with first number
// (assuming the first character in the string is always a number)
let s = parseInt(t[0]);
t.map((c, i) => {
if (c == "+") {
// 3. remove redundat sum with previous number
s = s + parseInt(t[i + 1])
}
else if (c == "-") {
// 3. remove redundat sum with previous number
s = s - parseInt(t[i + 1])
}
})
console.log(s);
Another approach …
let str = "-1+2-3+4";
let arr = str.split(/(?=\D+)/); // split at each non-number
for (let i in arr) {
arr[i] = parseInt(arr[i]); // convert each array element to an integer
}
let s = arr.reduce((sum, x) => sum + x); // sum everything up
2 Likes
This topic was automatically closed 182 days after the last reply. New replies are no longer allowed.