通过javascript中的if语句向数组添加值

Moe*_*Moe 2 html javascript forms arrays if-statement

我使用onkeyup()从表单输入中获取值和id.如果值介于0和4之间,我想将其添加到数组中.然而,似乎我的函数向数组添加值,无论它们是否在0到4之间,尽管我希望它只在值介于0和4之间时才向数组添加值.我做错了什么?

这些是输入:

<input type="number" class="form-control" id=0 onkeyup="a(this)" mix="0" max="4">
<input type="number" class="form-control" id=1 onkeyup="a(this)" mix="0" max="4">
.
.
Run Code Online (Sandbox Code Playgroud)

这是我的功能:

function a(c){

    var dps = [];
    var id = c.id;
    var valueStr = c.value;
    var value = parseInt(valueStr)
    if (0 <= value <= 4) {
        dps[id]=value;
        console.log("id: ",id);
        console.log("value: ", value);
        console.log("length of array: ",dps.length);
        console.log("type of value: ", typeof value);
    }
 }
Run Code Online (Sandbox Code Playgroud)

我在Jsfiddle上重新创建了它:https://jsfiddle.net/89az7u4n/

p.s*_*w.g 5

您通常在数学中编写不等式的方式与我们在大多数编程语言中通常编写比较的方式不同.

if (0 <= value <= 4)并不意味着'如果值介于0和4之间'.解析器将其视为(0 <= value) <= 4将评估false <= 4或评估为true <= 4哪个true.

将您的if陈述改为:

if (0 <= value && value <= 4) {
  ...
}
Run Code Online (Sandbox Code Playgroud)

哪里&&逻辑与操作.