CC___yyds 2023-01-21 16:42 采纳率: 50%
浏览 33
已结题

js程序出现被删掉的值?最后打印出的列表里面所有值都一样

img

我在制作微信小程序时遇到的,感觉十分离谱
明明都把‘叛徒警长’在all里删除了,但还会显示
打印出的玩家信息列表里面所有值都一样
求帮忙看看什么情况


var util = require("../../util.js");
//var app = getApp();

Page({
    data: {
        JueSeLis:[["1号玩家", "-", "-", 1, 1, "存活", "无"],
        ["2号玩家", "-", "-", 1, 1, "存活", "无"],
        ["3号玩家", "-", "-", 1, 1, "存活", "无"],
        ["4号玩家", "-", "-", 1, 1, "存活", "无"],
        ["5号玩家", "-", "-", 1, 1, "存活", "无"],
        ["6号玩家", "-", "-", 1, 1, "存活", "无"],
        ["7号玩家", "-", "-", 1, 1, "存活", "无"],
        ["8号玩家", "-", "-", 1, 1, "存活", "无"],
        ["9号玩家", "-", "-", 1, 1, "存活", "无"],
        ["10号玩家", "-", "-", 1, 1, "存活", "无"],
        ["11号玩家", "-", "-", 1, 1, "存活", "无"],
        ["12号玩家", "-", "-", 1, 1, "存活", "无"],
        ["13号玩家", "-", "-", 1, 1, "存活", "无"],
        ["14号玩家", "-", "-", 1, 1, "存活", "无"],],
        all:["老六","警长","豺狼","预言家","诱饵","女巫","守卫","狼王","赌怪","钟表匠","天使","投机者","牧师","隐狼","叛徒预言家","叛徒守卫","叛徒老六","叛徒赌怪","小丑"],//删除叛徒警长
        stop:true,
        guylis:["恋人","恋人","小孩","角斗士","村干部","尬王","武学大师","小强","普通生物","普通生物","普通生物","普通生物","普通生物","普通生物","普通生物","普通生物","普通生物"],
        listData:[
            {"number":"玩家1","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家2","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家3","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家4","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家5","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家6","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家7","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家8","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家9","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家10","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家11","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家12","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家13","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家14","zhiye":"-","juese":"-","num":"-"},
        ],
        arr:(Math.random() * 10 + 14).toFixed(0) - 10,//暂时没用随机数
    },
    onLoad:function(){
        var listData = [
            {"number":"玩家1","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家2","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家3","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家4","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家5","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家6","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家7","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家8","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家9","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家10","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家11","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家12","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家13","zhiye":"-","juese":"-","num":"-"},
            {"number":"玩家14","zhiye":"-","juese":"-","num":"-"},
        ];
        var JueSeLis =  [["1号玩家", "-", "-", 1, 1, "存活", "无"],
        ["2号玩家", "-", "-", 1, 1, "存活", "无"],
        ["3号玩家", "-", "-", 1, 1, "存活", "无"],
        ["4号玩家", "-", "-", 1, 1, "存活", "无"],
        ["5号玩家", "-", "-", 1, 1, "存活", "无"],
        ["6号玩家", "-", "-", 1, 1, "存活", "无"],
        ["7号玩家", "-", "-", 1, 1, "存活", "无"],
        ["8号玩家", "-", "-", 1, 1, "存活", "无"],
        ["9号玩家", "-", "-", 1, 1, "存活", "无"],
        ["10号玩家", "-", "-", 1, 1, "存活", "无"],
        ["11号玩家", "-", "-", 1, 1, "存活", "无"],
        ["12号玩家", "-", "-", 1, 1, "存活", "无"],
        ["13号玩家", "-", "-", 1, 1, "存活", "无"],
        ["14号玩家", "-", "-", 1, 1, "存活", "无"],]
        console.log(this.data.JueSeLis);
        console.log(JueSeLis);
    },
    pnum: function(data) {
        var JueSeLis =  [["1号玩家", "-", "-", 1, 1, "存活", "无"],
        ["2号玩家", "-", "-", 1, 1, "存活", "无"],
        ["3号玩家", "-", "-", 1, 1, "存活", "无"],
        ["4号玩家", "-", "-", 1, 1, "存活", "无"],
        ["5号玩家", "-", "-", 1, 1, "存活", "无"],
        ["6号玩家", "-", "-", 1, 1, "存活", "无"],
        ["7号玩家", "-", "-", 1, 1, "存活", "无"],
        ["8号玩家", "-", "-", 1, 1, "存活", "无"],
        ["9号玩家", "-", "-", 1, 1, "存活", "无"],
        ["10号玩家", "-", "-", 1, 1, "存活", "无"],
        ["11号玩家", "-", "-", 1, 1, "存活", "无"],
        ["12号玩家", "-", "-", 1, 1, "存活", "无"],
        ["13号玩家", "-", "-", 1, 1, "存活", "无"],
        ["14号玩家", "-", "-", 1, 1, "存活", "无"],]
        console.log(JueSeLis);
        var redLis = ["狼王","隐狼","叛徒预言家","叛徒守卫","叛徒老六","叛徒赌怪","叛徒警长"];
        var blueLis = ["豺狼","侍从"];
        var all = this.data.all;
        var guylis = this.data.guylis;
        var stop = true;
        console.log("玩家数量",data.detail.value.playernum)
        util.shuffle(all);
        util.shuffle(guylis);
        console.log(this.data.JueSeLis);
        
        this.setData({all:all});
        this.setData({guylis:guylis});
        
        if (data.detail.value.playernum>=4){
            var i = 0;
            var listDatan = this.data.listData;
            var listDatan = [
                {"number":"玩家1","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家2","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家3","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家4","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家5","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家6","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家7","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家8","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家9","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家10","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家11","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家12","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家13","zhiye":"-","juese":"-","num":"-"},
                {"number":"玩家14","zhiye":"-","juese":"-","num":"-"},
            ];
            console.log(JueSeLis);
            if (data.detail.value.playernum<14){
                listDatan.pop();
                JueSeLis.pop();
                if (data.detail.value.playernum<13){
                    listDatan.pop();
                    JueSeLis.pop();
                    if (data.detail.value.playernum<12){
                        listDatan.pop();
                        JueSeLis.pop();
                        if (data.detail.value.playernum<11){
                            listDatan.pop();
                            JueSeLis.pop();
                            if (data.detail.value.playernum<10){
                                listDatan.pop();
                                JueSeLis.pop();
                                if (data.detail.value.playernum<9){
                                    listDatan.pop();
                                    JueSeLis.pop();
                                    if (data.detail.value.playernum<8){
                                        listDatan.pop();
                                        JueSeLis.pop();
                                        if (data.detail.value.playernum<7){
                                            listDatan.pop();
                                            JueSeLis.pop();
                                            if (data.detail.value.playernum<6){
                                                listDatan.pop();
                                                JueSeLis.pop();
                                                if (data.detail.value.playernum<5){
                                                    listDatan.pop();
                                                    JueSeLis.pop();
                                                    if (data.detail.value.playernum<4){
                                                        listDatan.pop();
                                                        JueSeLis.pop();
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
            console.log(JueSeLis);
            this.setData({listData:listDatan});
            this.setData({JueSeLis:JueSeLis});
            this.setData({stop:stop});
        }
        for (var i = 0; i <= 5; i++) {
        //while(stop=true){
            //if(stop=true){
                //break;
            //}
            var JueSeLis =  this.data.JueSeLis;
            var a = 0;
            var l = 0;
            var rb = 0;
            var rbl = 0;
            var yy = 0;
            var sw = 0;
            var dg = 0;
            var jz = 0;
            var lb = 0;
            var v = 0;
            var t1 = 0;
            var i2 = 0;
            var t1 = parseInt(t1);
            util.shuffle(all);
            util.shuffle(guylis);
            console.log(all);
            console.log(guylis);
            for (var v in JueSeLis) {
                if(guylis[t1] = "小强"){
                    if(all[t1] = "赌怪"){
                        JueSeLis[t1][1]=all[t1];
                        JueSeLis[t1][2]=guylis[t1];
                        JueSeLis[t1][3]=2;
                    }
                    else{
                        //JueSeLis.push([c.toString() + '号玩家',all[i],guylis[i],'2','1','存活','无']);
                        JueSeLis[t1][1]=all[t1];
                        JueSeLis[t1][2]=guylis[t1];
                        JueSeLis[t1][3]=2;
                        console.log("小强");
                    }
                }
                else if(all[t1]="赌怪"){
                    //JueSeLis.push([c.toString() + '号玩家',all[i],guylis[i],'2','1','存活','无'])
                    JueSeLis[t1][1]=all[t1];
                    JueSeLis[t1][2]=guylis[t1];
                    JueSeLis[t1][3]=2;
                    console.log("赌怪");
                }
                else{
                    //JueSeLis.push([c.toString() + '号玩家',all[i],guylis[i],'1','1','存活','无'])
                    //JueSeLis[t1][1]=all[t1];
                    //JueSeLis[t1][2]=guylis[t1];
                    JueSeLis[t1][3]=6;
                    console.log("普通")
                }
                t1++;
            }
            console.log(JueSeLis);
            
            for (i2 = 0; i2 <= this.data.listData.length; i2++) {
                if (JueSeLis[i2] in redLis){
                    a++;
                    rb++;
                    
                    if (JueSeLis[i2]="恋人"){
                        rbl++;
                        
                    }
                }
                if (JueSeLis[i2][2]="恋人"){
                    l++;
                    
                }
                if (JueSeLis[i2][2] in blueLis){
                    rb++;
                    
                    if (JueSeLis[i2][2]="恋人"){
                        rbl++;
                        
                    }
                }
                if(JueSeLis[i2][1]="老六"){
                    lb++;
                    
                }
                if(JueSeLis[i2][1]="叛徒老六"){
                    lb++;
                    
                }
                if(JueSeLis[i2][1]="预言家"){
                    yy++;
                    
                }
                if(JueSeLis[i2][1]="叛徒预言家"){
                    yy++;
                    
                }
                if(JueSeLis[i2][1]="赌怪"){
                    dg++;
                    
                }
                if(JueSeLis[i2][1]="叛徒赌怪"){
                    dg++;
                    
                }
                if(JueSeLis[i2][1]="守卫"){
                    sw++;
                    
                }
                if(JueSeLis[i2][1]="叛徒守卫"){
                    sw++;
                    
                }
                if(JueSeLis[i2][1]="警长"){
                    jz++;
                    
                }
                if(JueSeLis[i2][1]="叛徒警长"){
                    jz++;
                    
                }
            }
            console.log(782834)
            if(a>0){
                if(data.detail.value.playernum<6){
                    console.log("<6????????????????????????????????????????????")
                    if (a<2){
                        console.log("a<2")
                        if(l!=1){
                            console.log("l!=1")
                            if (rb>rbl){
                                console.log("rb>rbl")
                                if(lb<2){
                                    console.log("lb<2")
                                    if(yy<2){
                                        console.log("yy<2")
                                        if(dg<2){
                                            console.log("dg<2")
                                            if(sw<2){
                                                console.log("sw<2")
                                                if(jz<2){
                                                    stop=false;
                                                    console.log("判断!!!!!!!!!!!!!!!!!!!!!!!!!");
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    }
                else if(this.data.listData.length<9){
                    if(a<3){
                        if(l!=1){
                            if (rb>rbl){
                                if(lb<2){
                                    if(yy<2){
                                        if(dg<2){
                                            if(sw<2){
                                                if(jz<2){
                                                    stop=false;
                                                    console.log("判断!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    }
                else if(this.data.listData.length<13){
                    if(a<4){
                        if(l!=1){
                            if (rb>rbl){
                                if(lb<2){
                                    if(yy<2){
                                        if(dg<2){
                                            if(sw<2){
                                                if(jz<2){
                                                    stop=false;
                                                    console.log("判断!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        
                    }
                    }
                else if(this.data.listData.length>=13){
                    if(a<5){
                        if(l!=1){
                            if (rb>rbl){
                                if(lb<2){
                                    if(yy<2){
                                        if(dg<2){
                                            if(sw<2){
                                                if(jz<2){
                                                    stop=false;
                                                    console.log("判断!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
                                                    break;
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    }
                }
            console.log(JueSeLis)
            }
            this.setData({JueSeLis:JueSeLis})
            //for (i = 0; i <= this.data.listData.length; i++){
                
            //}
            var i1 =0;
            for(var key in listDatan){
                listDatan[i1]["zhiye"] = all[i1];
                listDatan[i1]["juese"] = guylis[i1];
                i1++;
                console.log(parseInt(listDatan.indexOf(key)));
                console.log(i1);
            }
            this.setData({listData:listDatan});
        
    },
    ce: function(data){
        var i = 0;
        while(i<99){
            console.log(i);
            i++;
        }
    }

})
  • 写回答

3条回答 默认 最新

  • 社区专家-Monster-XH 2023-01-21 17:09
    关注

    可以看到,在这段代码中有几个地方都会用到if(JueSeLis[i2][1]="叛徒警长")这个条件,但是这里使用了等于号而非三等号,这是一个语法错误。正确的应该是if(JueSeLis[i2][1] === "叛徒警长"),这样才能正确判断
    三个等于号是判断相等的符号,在这段代码中,用三个等于号来判断all[t1]是否等于某个字符串,如果相等,就会执行相应的代码。
    例如:

     else if(all[t1]="赌怪"){
    //JueSeLis.push([c.toString() + '号玩家',all[i],guylis[i],'2','1','存活','无'])
    JueSeLis[t1][1]=all[t1];
    JueSeLis[t1][2]=guylis[t1];
    JueSeLis[t1][3]=2;
    console.log("赌怪");
    }
    
    

    如果all[t1]的值是"赌怪",那么就会执行上面的代码。
    但是这种写法有一个坑点就是等于号左右两边都要有值,所以如果只写一个等于号可能会出错,所以用三个等于号来确保等于号左右都有值。就是在删除'叛徒警长'之后,在JueSeLis数组里面的信息会被删除,但是还是会在最后一个if语句里面统计到'叛徒警长'的数量,这可能就是为什么所有值都一样了。

    另外我注意到,有些地方用了"=="判断相等,但是应该改用"==="来判断相等。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 1月30日
  • 已采纳回答 1月22日
  • 创建了问题 1月21日

悬赏问题

  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动
  • ¥15 关于#matlab#的问题:提取2个图像的变量作为另外一个图像像元的移动量,计算新的位置创建新的图像并提取第二个图像的变量到新的图像
  • ¥15 改算法,照着压缩包里边,参考其他代码封装的格式 写到main函数里
  • ¥15 用windows做服务的同志有吗
  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法