当我们在内部打印 index 的值时,如果它显示正确的结果,但在外部打印时相同的变量索引显示值 0(最初分配的值)。我认为 getJSON 的异步行为存在一些问题(不太确定)。有人可以告诉我可能的解决方案是什么吗?
function get_build_id(query,node_file_name)
{
//alert(query);
flag = 0;
index = 0;
$.getJSON(node_file_name,function(data)
{
$.each(data,function(i,x)
{
index=index+1;
if (x.name.toLowerCase()==query.toLowerCase() )
{
flag=1;
//alert("index2 "+index);
return false;
}
});
});
//alert("index is "+ index);
alert(flag);
if(flag==1)
return index;
else
return -1;
}
@布拉德克里斯蒂
再次面临同样的问题。ind 值给出正确的结果,但索引值始终为 0。
function get_build_id(query, node_fil_name, callback)
{
var ind = 0;
$.getJSON(node_fil_name, function(data)
{
$.each(data, function(i,x)
{
ind = ind + 1;
if (x.name.toLowerCase() == query.toLowerCase()){
callback(ind); // found match
return false;
}
});
callback(0); // no match found
});
}
function get_hash_val(roomno,room_file_name,node_file)
{
var flag=0,ind;
get_build_id(roomno,node_file, function(ind)
{
alert(ind);
index=ind;
});
alert(index);
if(index!=0)
return index;
else
return -1;
}
//get_hash_value 被另一个必须返回索引的函数调用