变量超出范围不起作用

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);

  }
})

以上是关于变量超出范围不起作用的主要内容,如果未能解决你的问题,请参考以下文章

Python:IndexError:列表索引超出范围

活动结果片段索引超出范围:0x20001

java代码在片段活动中不起作用

Javascript代码片段在drupal中不起作用

替换或删除后台堆栈上现有片段的代码不起作用

片段 getActivity 不起作用