猿问

js变量和字符串拼接之后,怎么还能是变量呢?

受别人指点,修改了问题,之前发错了问题又没有表达清楚,代码如下。冒号左边可以[result${i}AV]这样写,数字由索引获取,但是冒号右边的不知道怎么写,拼接之后就不是变量了。冒号左边的是page函数的data初始化数据里面的,冒号右边是let result1A = [1,2,3]这种写在onload函数里面的,需要把计算之后把值传给page函数的初始化数据data里面对应的数据,该末尾加了V(view)。目前很想知道怎么使用遍历写出更精简的代码,因为冒号右边不会拼接。


this.setData({

      labelAV: labelA,

      result1AV: result1A,

      result2AV: result2A,

      result3AV: result3A,

      result4AV: result4A,

      result5AV: result5A,

      result6AV: result6A,

      result7AV: result7A,

      result8AV: result8A,

      result9AV: result9A

    })


繁华开满天机
浏览 1211回答 3
3回答

慕尼黑5688855

问题描述有点乱,我理解你的问题大概是这个意思:你需要写一段类似这样的代码:this.setData({&nbsp; labelAV: labelA,&nbsp; result1AV: result1A,&nbsp; result2AV: result2A,&nbsp; result3AV: result3A,&nbsp; result4AV: result4A,&nbsp; result5AV: result5A,&nbsp; result6AV: result6A,&nbsp; result7AV: result7A,&nbsp; result8AV: result8A,&nbsp; result9AV: result9A})但是对象很长,并且键名和对应的变量名都有规律,所以想问问有什么简单的方法?其实有办法的,但是我们一般不会这样写。可以用eval来实现:const codes = [ `labelAV: labelA` ];for ( let i = 0; i < 10; i++ ) {&nbsp; &nbsp; codes.push( `result${i}AV: result${i}A` );}eval( `this.setData( { ${codes.join( ',' )} } )` );但是建议不要这样写代码,也不要定义一堆resultxA之类的变量,你可以用一个数组来保存它们,这样就会好处理很多

慕盖茨4494581

let resultA = Array(10).fill(0).map((_, i) => this.data[`result${i}AV`])
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答