Javascript 从数组循环,如果语句

Javascript 从数组循环,如果语句,javascript,arrays,function,if-statement,for-loop,Javascript,Arrays,Function,If Statement,For Loop,在继续编写代码之前,我一直在想这是否是从数组循环的正确方法。我主要关心的是link var link=。。。和if语句 这是运行array1并查看返回值是否小于/等于array2中相应值的正确方法吗?如果我的代码是正确的(我对此表示怀疑),但我目前无法测试它,是否有更有效的方法 另外,这个循环会无限期地遍历数组1的每个元素,还是只遍历其中一个元素 var array1 = [741, 451, 54188, 5847, 5418, 54944, 310, 541, 7451, 10211, 11

在继续编写代码之前,我一直在想这是否是从数组循环的正确方法。我主要关心的是link var link=。。。和if语句

这是运行array1并查看返回值是否小于/等于array2中相应值的正确方法吗?如果我的代码是正确的(我对此表示怀疑),但我目前无法测试它,是否有更有效的方法

另外,这个循环会无限期地遍历数组1的每个元素,还是只遍历其中一个元素

var array1 = [741, 451, 54188, 5847, 5418, 54944, 310, 541, 7451, 10211, 113, 9115, 62, 2841, 52482481, 24];
var array2 = [15, 418, 488, 130000, 8482, 55, 16, 14, 2546, 651, 4521, 11, 54, 659, 542, 1152];

var myObj = {};
array1.forEach(function(item, i) {
    myObj[item] = array2[i];
});

var Loop = setInterval(function(){ 
    for (var prop in array1) {
        var link = "http://blahblahblah.com/blah/" + array1[prop] + "/blahblah"
        $.get(link,function(data){
            var dataGiven = $("span.cost-in-usd:first-child").text();
            dataGiven = Number(dataGiven.replace(",",""));
            dataGiven = Number(dataGiven.replace("(",""));
            dataGiven = Number(dataGiven.replace(")",""));
            if (dataGiven <= myObj[prop]) {
                //stuff happens
            }
        });
    }
},0)
for in语句用于循环对象的属性。虽然它有时会使用数组,但有一种更合适的方法:

for (var i = 0; i < array.length; i++) {
    var value = array[i];
    //Do stuff
}

关于你问题的第二部分,我相信这将无限期地循环。不需要设置循环数组的间隔。这将每0毫秒完全循环一次数组。

如果我是你,我会这样做:

for (var i = 0; i < array1.length; i++) {
    if (array1[i] <= array2[i]) {
        //Do something
    }
}
forEach也同样有效


对于您对var link=。。。只要它是一条有效的路径,并且你不会忘记把;最后你表现不错。

道具会变的。在setInterval中的循环中也是ajax…,0,你真的应该对一个数字施法一次。我不知道有任何数字中有括号。请注意,jQuery有一个each方法,可以规范化所有内容,并且可以与对象和数组一起使用。任何带有,casted to Number的内容都将生成NaN,isNaNNumber'100'-您的替换如何工作?@KrzysztofSafjanowski所以,我应该去掉Number,使用dataGiven.replace?Array.forEach没有问题,for-in命令可能会有问题。对,这就是为什么我想知道扩展到长形式for的用途是什么。习惯和惯例也是如此,几乎每种语言都是这样迭代数组的。Array.forEach是一种不同的方法,它可以归结为首选项这是如何工作的?我想看看链接给出的array1的每个元素的值是否小于/等于array1元素的对应值,如array2所示。例如,myObj[741]array1中的第一个元素是15,array2中的第一个元素。所以dataGiven是array1的值,可以在我知道的网站上找到。我想看看dataGiven是否小于/等于array1中每个元素的对应值,如array2所示。。。如果741在站点上给出的值小于array2中看到的相应值,这就是myObj存在的原因,那么它将返回类似廉价出售的结果!。至少,这正是我最终要做的。@user3810560对于如何处理dataGiven和数组有点困惑。您已将它们硬编码,使用$.get检索的数据的格式是什么?你应该复习一下你的数组,因为myObj[741]不会给你数组中的第一个元素,而是数组中的第742个元素(如果它存在的话)。第一个元素由myObj[0]检索,因此array1[0]=741和array2[0]=15请看这两个代码块,最后添加了alertmyObj[741]。