2016-04-21 664 views
0

我有这样的代码,即时响应jquery成功的数据。for循环中的两个条件

for(i = 0;i < dat.id.length; i++){ 

      // im echoing data here 
    } 

,我想在dat.voteup

像检查的最高值(它的工作原理)

var maxvoteup = 0; 
    if (dat.voteup[i] - dat.votedown[i] ==maxvoteup) { 
        console.log(maxvoteup); 
     //i want fetch maxvoteup here 

    } 

但我想使只有我一个循环而不是两个。我该怎么办?

编辑:

var maxvoteup = 0; 
    for (i = 0;i < (dat.voteup-dat.votedown).length ;i++) { 
     if (dat.voteup[i] - dat.votedown[i]>maxvoteup) { 
      maxvoteup = dat.voteup[i] - dat.votedown[i]; 
        console.log(maxvoteup); 
     //i want fetch maxvoteup here 
     } 
    } 

EDIT2: 这是我的jQuery响应什么即时得到,但其实我最大的票是10不是8。 8只投了8个,但有其他的票是10

{"status":"success","message":[],"date_edited":[2016-04-21 21:31:25],"voteup":[],"votedown":[8],"id":[]} 
+0

你只要在单个for循环中使用两个条件.store都会导致不同的变量或数组。 – JYoThI

+0

@Tushar很抱歉我迟到的答案,也许我不清楚,我编辑了我的问题。我的意思是我有循环也寻找最大值。我如何结合第一个循环 –

回答

1

你的代码是一个有点难以阅读,但如果我理解正确的话,我相信所有你需要做的是两个合并成一个与外部定义的maxvoteup单回路。

var maxvoteup = 0; 
for(i = 0;i < dat.id.length; i++){ 
    // echo data... 

    // max upvote 
    if (dat.voteup[i] - dat.votedown[i] == maxvoteup) { 
     console.log(maxvoteup); 
    } 
} 

编辑:

不幸的是获得从列表中的最大值需要你通过列表​​,即最大值不能在不断及时发现进行迭代。我建议你先找到最大值,然后继续进行for循环。

另外,如果你知道你最大的是数字的列表,你可以实际使用JavaScript的apply使代码干净了一点:

var maxvoteup = Math.max.apply(Math, listOfMaxVotes); 

在这里看到:How does the Math.max.apply() work?

EDIT2:

如果你想持续跟踪最大值,那么你所需要做的就是将maxvoteup变量移动到之外你的响应处理程序所以你可以随时跟踪。

// global scope... 
var maxvoteup = 0; 

// your jquery response handler 
var onSuccessData = function(data) { 
    // get the highest possible max from the `voteup` and `votedown` lists 
    var responseMax = Math.max.apply(Math, data.voteup.concat(data.votedown)); 

    // check if it's greater than our global maxvoteup 
    if (responseMax > maxvoteup) { 
    // if it is, then update our global `maxvoteup` to the new value 
    maxvoteup = responseMax; 
    } 

    // continue with your other processing... 
}; 
+0

感谢您的解释。我已经更新了我的答案。 – smaili

+0

你可以编辑你的问题,并举例说明你的jQuery成功数据是什么样子的?这将有很大帮助。 – smaili

+0

我编辑了我的问题亲爱的smaili。即时获取只是编辑的值不是所有的值 –