uniapp 的this在for循环怎么赋值


<script>
//前面省略



//假设
this.demo1=false;
this demo2=false;
this demo3=false;
this demo4=false;
this demo5=false;
this demo6=false;
//.........
this.demo100=false;

click(id){
    for (let i=1;i<=100;i++) { 
        if(id==i)
        
            this.demo.i = true;    //给上面的变量赋值,但是这句会报错
            this.demo+i = true;    //也报错

        }
    }
}

会报错,在for循环里 this和i怎么组合啊

id和i相等的情况下,循环是没有意思的,白白浪费性能;
取值也不对,

this[`demo${i}`] = true;

【以下回答由 GPT 生成】

在这种情况下,可以使用计算属性名来动态赋值。您可以将属性名组合为字符串,然后使用计算属性名来访问和赋值该属性。具体解决方案如下所示:

click(id) {
    for (let i = 1; i <= 100; i++) { 
        if (id == i) {
            const propertyName = 'demo' + i;    // 组合属性名
            this[propertyName] = true;    // 使用计算属性名赋值
        }
    }
}

使用上述代码,您就可以根据id的值,动态地给this下面的属性赋值。例如,当id为1时,this.demo1将被赋值为true

希望这个解决方案对您有所帮助。如果有任何其他问题,请随时提问。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^