I am learning arrays in JavaScript and I am using the foreach with the push method.
The following code is working as its supposed to:
let numbers = [-1, -2, -3, 5, 6, 1]
let pos = []
let neg = []
numbers.forEach(number => {
if (number<0) {
neg.push(number)
} else {
pos.push(number)
}
})
document.write("Number of positive numbers are: "+pos + "<br>" + "<br>")
document.write("Number of negative numbers are: "+neg)
But I want to replicate this with a prompt, instead of hard coding the values in the array. And end the prompt with a 0. The code I attempted is the following, but the variables pos and neg are never evaluated’, this is my code:
let numbers = []
let pos = []
let neg = []
let number = parseInt(prompt("Input nr"))
document.write("Your input nr was: " + number + "<br>" + "<br>")
while (number != 0) {
number = parseInt(prompt("Input nr"))
document.write("Your input nr was: " + number + "<br>" + "<br>")
numbers.forEach(number => {
if (number<0) {
neg.push(number)
} else {
pos.push(number)
}
})
}
document.write("Number of positive numbers are: "+pos + "<br>" + "<br>")
document.write("Number of negative numbers are: "+neg)
What have I done wrong in my code?
Advertisement
Answer
You need to push the number into numbers array
numbers.push(number)
let numbers = []
let pos = []
let neg = []
let number = parseInt(prompt("Input nr"))
numbers.push(number)
document.write("Your input nr was: " + number + "<br>" + "<br>")
while (number != 0) {
number = parseInt(prompt("Input nr"))
numbers.push(number)
document.write("Your input nr was: " + number + "<br>" + "<br>")
}
numbers.forEach(number => {
if (number<0) {
neg.push(number)
} else {
pos.push(number)
}
})
document.write("Number of positive numbers are: "+pos + "<br>" + "<br>")
document.write("Number of negative numbers are: "+neg)