如何在循环中停止推送值?

时间:2017-08-01 17:43:11

标签: javascript jquery

我正在运行以下内容:

function wikiText() {
  console.log(JSON.stringify(JSON.parse(JSON.stringify(spacetime)), null, 4));
  var url="https://en.wikipedia.org/w/api.php?action=parse&disablelimitreport=true&format=json&prop=text|langlinks&noimages=true&mobileformat=true&page="+ curTitle + "&callback=?";
  $.getJSON(url,function(data){
    $.each(data, function(i, item) {
        spacetime[0].Title.push(curTitle);
        for(var i = 0; i < dateText.length; i++) {
          d += dateText[i] + ' ';
        }
        var words = d.split(" ");
        var array = words;
        var newArray = array.filter(function(v){return v!==''});
        for (const word of newArray) {
          if (months.has(word)) {
              spacetime[0].Time.months.push(word);
          } else if (+word < 32) {
              spacetime[0].Time.days.push(+word);
          } else if (+word < 2200) {
              spacetime[0].Time.years.push(+word);
          } else if (/\w+/.test(word)) {
              spacetime[0].Time.suffixes.push(word);
          }
        }
        let pattern = new RegExp('^\/wiki\/');
        doSelect("Location").siblings('td').find('a').each(function(index, el) { 
          result = $(this).attr('href').replace(pattern, '');
          countryPage();  
        });
      };
    });
  });
}

实际上这是一个由另一个函数function newQuery() {.. wikiText();调用的函数 然后,第一段代码运行另一个函数function countryPage() {,但这个函数没有推动spacetime[0].Time...

但是我得到了重复的值,如:

"days": [
                27,
                28,
                27,
                28,
                19,
                22,
                27,
                28,
                19,
                22,
                27,
                28,
                19,
                22,

我不明白为什么它会重复这些值,好像它正在保存它们并在每次调用函数时重新推送它们。

我确实有一个jsFiddle只是耐心一点,因为它正在进行大量的解析。(参见console.log)。

我需要:

"days": [
                27,
                28,
                19,
                22,

0 个答案:

没有答案