在我继续编写代码之前,我一直想知道这是否是从数组循环的正确方法。我主要关心的是链接(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)
答案 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 = ...
的疑虑,只要它是一条有效的路径,并且您不会忘记将;
放在最后,那么您就是好的。