js(node.js)while循环不起作用

用户4735397

我的node.js代码如下。

基本上,我有一个名为searchRes的缓冲区,首先我从中获得一些值。

它应该循环“结果-1”次。

它正在循环。

它会完全正确地打印信息的前3位,然后此信息(第4位起)始终与第3位相同。

我不知道为什么。

results = 20;
var sSize = searchRes.slice(8,16);
sSize = parseInt(sSize,16);
lols = new Array();

while(num <= results -1 ){

    var cur = num + 1;
    var sres=0;
    for(var i in lols) { sres += lols[i]; }

    if (num == 0){

        var clanRes = searchRes.slice(0, 128 + (sSize * 2));

        var cLen = clanRes.slice(8,16);
        cLen = parseInt(cLen,16);

        var firstLen = clanRes.length;
        var lastLen = clanRes.length;

    }else{

        var cLen = searchRes.slice(lastLen + 8, lastLen + 16);

        cLen = parseInt(cLen,16);

        var clanRes = searchRes.slice(
            lastLen, 
            lastLen + 128 + (cLen * 2)
        );

            var abc = 1;
            if (abc == 1){
                var lastLen = firstLen + clanRes.length;
                abc++;
            }else{
                var lastLen = lastLen + clanRes.length;
            }

    }


    lols.push(cLen);

    console.log('\n\nClan ' + cur + ' Details');

    var clanID = clanRes.slice(0,8);
    clanID = parseInt(clanID,16);

    num ++;
}

我根本不知道问题出在哪里。是在定义clanRes时还是在进行循环时?

谢谢!

**

  • @bergi的更新代码

**

num = 0;
var sSize = searchRes.slice(8,16);
sSize = parseInt(sSize,16);
lols = new Array();

    while(num <= 3){

        var cur = num + 1;
        var sres=0;
        for(var i in lols) { sres += lols[i]; }

        if (num == 0){

            var clanRes = searchRes.slice(0, 128 + (sSize * 2));

            var cLen = clanRes.slice(8,16);
            cLen = parseInt(cLen,16);

            var firstLen = clanRes.length;
            var lastLen = clanRes.length;

        }else{

            var cLen = searchRes.slice(lastLen + 8, lastLen + 16);

            cLen = parseInt(cLen,16);

            var clanRes = searchRes.slice(
                lastLen, 
                lastLen + 128 + (cLen * 2)
            );

                var abc = 1;
                if (abc == 1){
                    var lastLen = firstLen + clanRes.length;
                    abc++;
                }else{
                    var lastLen = lastLen + clanRes.length;
                }

        }


        lols.push(cLen);

        console.log('\n\nClan ' + cur + ' Details');

        var clanID = clanRes.slice(0,8);
        clanID = parseInt(clanID,16);
        console.log(clanID);

        num ++;
    }

这是一个出色的搜索结果:http : //pastie.org/10075399

还有一个示例sSize:0000000e-十六进制14-int。

贝吉
var abc = 1;
if (abc == 1){

abc总是 1在比较(该值是正确的前行分配),所以它永远不会评估else块。我假设您想将变量的初始化移出循环。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章