Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将For循环参数传入每个语句_Javascript_Jquery_Json_Google Maps - Fatal编程技术网

Javascript 将For循环参数传入每个语句

Javascript 将For循环参数传入每个语句,javascript,jquery,json,google-maps,Javascript,Jquery,Json,Google Maps,我有一个JSON提要,它正在拉入一个each语句。我想做的是for循环varI我想在每条语句中使用这个值。在下面的示例中,for循环将运行0、1、2。如果i==1,则我希望运行JSON提要,但仅针对i=1值。当前,当if语句被触发时,JSON each语句将运行所有的b/c项,它的i值从0开始。因此,我准备的console.log返回0、1、2。我希望它只返回1。谢谢你的帮助 编辑 我的重点是使$。each(data.data,function(i,item){each语句中的i使用i在for循

我有一个JSON提要,它正在拉入一个each语句。我想做的是for循环var
I
我想在每条语句中使用这个值。在下面的示例中,for循环将运行0、1、2。如果
i==1
,则我希望运行JSON提要,但仅针对
i=1
值。当前,当if语句被触发时,JSON each语句将运行所有的b/c项,它的
i
值从0开始。因此,我准备的
console.log
返回0、1、2。我希望它只返回1。谢谢你的帮助

编辑
我的重点是使
$。each(data.data,function(i,item){
each语句中的
i
使用
i
在for循环语句中等于的数字。因此,如果JSON文件中有3个项目,则只运行项目1

for (var i = 0; i < 2; i++) {
    if (i == 1) {
        $.getJSON("/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3", {}, function(data, i) {
            $.each(data.DATA, function(i, item) {
                console.log(i);
            }
        }):
    }
}​
for(变量i=0;i<2;i++){
如果(i==1){
$.getJSON(“/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3”,{},函数(数据,i){
$.each(data.data,function(i,item){
控制台日志(i);
}
}):
}
}​
用于(变量i=0;i<2;i++){
var x=i;
如果(i==1){
$.getJSON(“/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3”,{},函数(数据,i){
$.each(data.data,函数(n,项){
如果(n==x){
控制台日志(n);
break;//如果需要,可以使用break
}
}
}):
break;//如果需要,可以使用break
}

}​

您需要引入一个额外的功能范围来实现此功能

function checkOnly(i) {
  return function(data) {
    $.each(data.DATA, function(ii, item) {
      if (ii == i) console.log(ii);
    });
  };
}

for (var i = 0; i < 2; i++) {
    if (i == 1) {
        $.getJSON("/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3", {}, checkOnly(i));
    }
}
仅功能检查(i){
返回函数(数据){
美元(数据、数据、功能(二、项目){
if(ii==i)console.log(ii);
});
};
}
对于(变量i=0;i<2;i++){
如果(i==1){
$.getJSON(“/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3”,{},checkOnly(i));
}
}

这里,传递给
$的回调在另一个函数中创建。通过这样做,
中检查的变量“i”。each()
循环是“i”的副本因此,处理程序函数具有一个固定值来比较.O.P/>这是有希望的。给我一个时间来测试。@ HelpSpReMeME是一个常见的问题。JavaScript变量范围只在函数级引入的事实是那些用于java、C++等的绊脚石。.然而,由于JavaScript具有真正有效的闭包,因此这是一个很容易克服的障碍。
function checkOnly(i) {
  return function(data) {
    $.each(data.DATA, function(ii, item) {
      if (ii == i) console.log(ii);
    });
  };
}

for (var i = 0; i < 2; i++) {
    if (i == 1) {
        $.getJSON("/json/v2_ilt_map.cfm?feedtype=ILTMAP_SCHEDULED&customerID=1&TrainingObjectParent=3", {}, checkOnly(i));
    }
}