第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

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

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

繁華開滿天機(jī) 2019-03-12 17:15:05
受別人指點(diǎn),修改了問題,之前發(fā)錯(cuò)了問題又沒有表達(dá)清楚,代碼如下。冒號(hào)左邊可以[result${i}AV]這樣寫,數(shù)字由索引獲取,但是冒號(hào)右邊的不知道怎么寫,拼接之后就不是變量了。冒號(hào)左邊的是page函數(shù)的data初始化數(shù)據(jù)里面的,冒號(hào)右邊是let result1A = [1,2,3]這種寫在onload函數(shù)里面的,需要把計(jì)算之后把值傳給page函數(shù)的初始化數(shù)據(jù)data里面對(duì)應(yīng)的數(shù)據(jù),該末尾加了V(view)。目前很想知道怎么使用遍歷寫出更精簡(jiǎn)的代碼,因?yàn)槊疤?hào)右邊不會(huì)拼接。this.setData({      labelAV: labelA,      result1AV: result1A,      result2AV: result2A,      result3AV: result3A,      result4AV: result4A,      result5AV: result5A,      result6AV: result6A,      result7AV: result7A,      result8AV: result8A,      result9AV: result9A    })
查看完整描述

3 回答

?
慕尼黑5688855

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超2個(gè)贊

問題描述有點(diǎn)亂,我理解你的問題大概是這個(gè)意思:

你需要寫一段類似這樣的代碼:


this.setData({

  labelAV: labelA,

  result1AV: result1A,

  result2AV: result2A,

  result3AV: result3A,

  result4AV: result4A,

  result5AV: result5A,

  result6AV: result6A,

  result7AV: result7A,

  result8AV: result8A,

  result9AV: result9A

})

但是對(duì)象很長,并且鍵名和對(duì)應(yīng)的變量名都有規(guī)律,所以想問問有什么簡(jiǎn)單的方法?


其實(shí)有辦法的,但是我們一般不會(huì)這樣寫。

可以用eval來實(shí)現(xiàn):


const codes = [ `labelAV: labelA` ];

for ( let i = 0; i < 10; i++ ) {

    codes.push( `result${i}AV: result${i}A` );

}

eval( `this.setData( { ${codes.join( ',' )} } )` );

但是建議不要這樣寫代碼,也不要定義一堆resultxA之類的變量,你可以用一個(gè)數(shù)組來保存它們,這樣就會(huì)好處理很多


查看完整回答
反對(duì) 回復(fù) 2019-03-26
?
慕蓋茨4494581

TA貢獻(xiàn)1850條經(jīng)驗(yàn) 獲得超11個(gè)贊

let resultA = Array(10).fill(0).map((_, i) => this.data[`result${i}AV`])

查看完整回答
反對(duì) 回復(fù) 2019-03-26
  • 3 回答
  • 0 關(guān)注
  • 1234 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)