变量超出范围不起作用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量超出范围不起作用相关的知识,希望对你有一定的参考价值。
如何在生物信息循环之外调用senator_party
信息,还可以在if(current_legislator.type === "senator")
语句中调用?
我对此代码的目标是:
- 循环数据以获取参议员数据 - 有效
- 检查参议员并使用参议员数据 - 工作
- 循环参议员生物数据以获取派对信息 - 工作
- 在生物信息循环之外显示聚会信息 - 不起作用
我读了很多关于此的文章,如果你在函数范围之外创建变量,那么共识似乎就是如果你在新函数中更新变量,那么它将更新范围之外的变量信息。
我可以通过代码中的注释更好地了解我要做的事情。
$(congressional_district.current_legislators).each(function(index, current_legislator) {
// check if Senator
if(current_legislator.type === "senator") {
// store empty party to use outside of scope
var senator_party;
// loop from bio info
$(current_legislator.bio).each(function(index, bio_item) {
// store new info in party variable
var senator_party = bio_item.party;
// call variable in alert - this works
alert(senator_party);
});
// call new variable outside of scope - returns undefined
alert(senator_party);
}
})
答案
更改
var senator_party = bio_item.party;
在循环内。至:
senator_party = bio_item.party;
这样你就不会重新创建变量了。
另一答案
我在每个函数中再次声明变量,不得不删除“var =”$(congressional_district.current_legislators).each(function(index,current_legislator){
// check if Senator
if(current_legislator.type === "senator") {
// store empty party to use outside of scope
var senator_party;
// loop from bio info
$(current_legislator.bio).each(function(index, bio_item) {
// store new info in party variable
senator_party = bio_item.party;
// call variable in alert - this works
alert(senator_party);
});
// call new variable outside of scope - returns undefined
alert(senator_party);
}
})
以上是关于变量超出范围不起作用的主要内容,如果未能解决你的问题,请参考以下文章