从数组循环,if语句

时间:2014-07-08 20:28:16

标签: javascript arrays function if-statement for-loop

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

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

此外,这会无限期地循环遍历array1的每个元素,还是无限期地循环其中一个元素?

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)

2 个答案:

答案 0 :(得分:0)

for in语句用于循环对象的属性。虽然它有时会使用数组,但这是一种更合适的方法:

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

对于你问题的第二部分,我相信这会无限循环。您无需设置循环数组的时间间隔。它将做的是每0毫秒完全循环数组。

答案 1 :(得分:0)

如果我是你,我会怎么做:

for (var i = 0; i < array1.length; i++) {
    if (array1[i] <= array2[i]) {
        //Do something
    }
}

forEach同样适用。

对于您对var link = ...的疑虑,只要它是一条有效的路径,并且您不会忘记将;放在最后,那么您就是好的。