Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/393.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 防止数组筛选器匹配与所需元素索引不同的元素_Javascript_Arrays_Filter - Fatal编程技术网

Javascript 防止数组筛选器匹配与所需元素索引不同的元素

Javascript 防止数组筛选器匹配与所需元素索引不同的元素,javascript,arrays,filter,Javascript,Arrays,Filter,我已经创建了一个记分器,通过添加一个类来突出显示每场比赛的获胜者。获胜者通过以下JavaScript: // take max score from each game and push into g1winner and g2winner arrays - g1winner.push(Math.max(parseInt(scoreboxArr[i].split(';')[2]),parseInt(scoreboxArr[i].split(';')[5]))); g2winner

我已经创建了一个记分器,通过添加一个类来突出显示每场比赛的获胜者。获胜者通过以下JavaScript:

  // take max score from each game and push into g1winner and g2winner arrays - 
  g1winner.push(Math.max(parseInt(scoreboxArr[i].split(';')[2]),parseInt(scoreboxArr[i].split(';')[5]))); 
  g2winner.push(Math.max(parseInt(scoreboxArr[i].split(';')[11]),parseInt(scoreboxArr[i].split(';')[14])));

  // filter scorebox-elem's for each date to find max score and addClass '.winner'
  $('#g1t1_score.scorebox-elem, #g1t2_score.scorebox-elem').filter(function () {
    return $(this).is(':contains('+g1winner[i]+')');
  }).addClass('winner').prevAll().eq(2).addClass('winner');

  $('#g2t1_score.scorebox-elem, #g2t2_score.scorebox-elem').filter(function () {
    return $(this).is(':contains('+g2winner[i]+')');
  }).addClass('winner').prevAll().eq(2).addClass('winner'); 
记分器允许用户左右导航以按日期查看游戏分数。通过addClass方法突出显示获胜球队的效果非常好,直到我有一个失败的球队与另一个日期的前一个获胜球队得分相同。注意:

您可以在此处看到它的作用:


我理解为什么会发生这种情况,但我是一个业余程序员,我不知道如何改变我拥有的,这样只有当前游戏的获胜团队才能通过过滤功能进行匹配。可以添加一个计数器,该计数器绑定到上面的白色div的每个scorebox网格,并添加每个数组中元素的索引必须与计数器匹配的条件?建议?

事实上,如果你看一下,你会发现,它的回调函数有两个参数,第一个是被处理元素的索引:

作用

类型:函数整数索引,元素=>布尔值

用于测试集合中每个元素的函数。这是 当前DOM元素

因此,这里要做的是在回调函数中传递此索引,并将其与i变量进行比较,这样它只考虑相关元素:

$('#g2t1_score.scorebox-elem, #g2t2_score.scorebox-elem').filter(function (index) {
    return index == i && $(this).is(':contains('+g2winner[i]+')');
  }).addClass('winner').prevAll().eq(2).addClass('winner');