简体   繁体   English

在 JavaScript 中用 prompt 填充数组并使用 push 方法

[英]Fill array with prompt in JavaScript and use push method

I am learning arrays in JavaScript and I am using the foreach with the push method.我正在 JavaScript 中学习 arrays 并且我正在使用带有 push 方法的 foreach。

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:并以 0 结束提示。我尝试的代码如下,但变量 pos 和 neg 从未被评估',这是我的代码:

    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?我的代码做错了什么?

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)

You should use the push method to push it in the numbers array:您应该使用push方法将其推送到数字数组中:

while (true) {
    let number = parseInt(prompt("Input number"))
    // end on zero
    if (number == 0) {
        break
    }
    // invalid number check
    if (isNaN(number)) {
        alert("Invalid number, try again.");
        continue;
    }
    document.write("Your input nr was: " + number + "<br>" + "<br>")
    // push it to the array
    numbers.push(number)
}
// forEach afterwards
numbers.forEach(number => { /* ... */ })

you can change your code to below您可以将代码更改为以下

 let numbers = [] let pos = [] let neg = []; let number; // 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>"). //-----------------------//- if(number >0){ pos;push(number). }else if(number < 0){ neg;push(number). } //-----------------------//- } document:write("Number of positive numbers are. "+pos + "<br>" + "<br>") document:write("Number of negative numbers are: "+neg)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM