【问题标题】:Array wont iterate properly and check values - Javascript数组不会正确迭代并检查值 - Javascript
【发布时间】:2015-04-10 23:51:29
【问题描述】:

我正在使用 JavaScript 制作一个小应用程序,用户在其中输入一些数字并将其存储在一个数组中。然后应用程序在屏幕上以绿色打印出 1 到 40。如果存储在数组中的任何数字等于 1 到 40,那么当它出现在屏幕上时,它将是红色而不是绿色。

var nums = document.getElementById('numbers').value;        
var numArray = [];
numArray = nums.split(" ");

for (n = 1; n < 41; n++) {
    if (n === numArray[n]) {
        document.write('<p>' + n + '</p}><br>');
    }
    else {
        document.write('<p>' + n + ' not in array</p}><br>');
    }
}

上面的代码只是一种尝试。我也尝试过嵌套的forloops,但这会打印1-40检查它是否存在。然后再次打印出来。直到完成。

那么,我怎样才能让它只迭代 1-40 并且如果它存在于数组中,则在屏幕上打印一些不同的东西?我已经坚持了很久!

提前致谢。

【问题讨论】:

    标签: javascript html arrays for-loop web-applications


    【解决方案1】:

    使用 Array.indexOf 方法在数组中搜索值。您还必须将要搜索的数字转换为字符串。这是一个工作循环:

    for (n = 1; n < 41; n++) {
        if (numArray.indexOf(n.toString()) >=0) {
            document.write('<p>' + n + '</p}><br>');
        }
        else {
            document.write('<p>' + n + ' not in array</p}><br>');
        }
    }
    

    我希望这会有所帮助!

    【讨论】:

    • 谢谢!我之前曾尝试使用 indexOf 方法。我一定是用错了。感谢您清理它! +1!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-10-07
    • 1970-01-01
    • 1970-01-01
    • 2011-08-24
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    相关资源
    最近更新 更多