微信小程序setData()方法的詳解以及對(duì)數(shù)組/json操作

一、setData()方法:

1速那、參數(shù)接受一個(gè)對(duì)象俐银,以key,value的形式表示琅坡;

2悉患、參數(shù)和變量名稱(chēng)一致,可用一個(gè)值代替(es6新語(yǔ)法特性)


如上圖所示榆俺,在this.data中設(shè)置ceshi這條數(shù)據(jù)售躁,在方法中,我們定義ceshi變量讓其等于that.data.ceshi; 然后對(duì)ceshi進(jìn)行操作茴晋,其實(shí)就是對(duì)that.data.ceshi進(jìn)行操作陪捷,而that.setData({ceshi})就等同于that.setData({ceshi : ceshi }) ; 第一個(gè)ceshi 是that.data.ceshi, 第二個(gè)ceshi 是我們定義的變量ceshi诺擅。通過(guò)打印的結(jié)果可以看到市袖,數(shù)據(jù)已經(jīng)添加上了。

3烁涌、可以設(shè)置一個(gè)或多個(gè)data數(shù)據(jù)

this.setData({

? list:'change data',

? info:'change data'

})


4苍碟、key可以以數(shù)據(jù)路徑的形式給出(路徑形式的key必須帶引號(hào))(經(jīng)小程序更新后,現(xiàn)已支持不加引號(hào)的寫(xiě)法)


this.setData({

? ? 'list[0].title' : 'change data',? //數(shù)據(jù)路徑key必須帶''號(hào)

? ? 'list[0].num' : 'change data'? ? ? //數(shù)據(jù)路徑key必須帶''號(hào)

})


5撮执、key值可以為變量微峰,為變量的時(shí)候要用[ ]引起來(lái)


page({

? data:{

? ? todos:[{id:0,text:'abc',isDelete:false}]

? },

? change(e){

? ? var index = e.currentTarget.dataset.id;

? ? var deletedtodo='todos['+index+'].idDelete';

? ? this.setData({

? ? ? [deletedtodo]:true

? ? })

? }

})


如圖所示 deletedtodo為變量作為key值的時(shí)候要用[ ] 包裹起來(lái)。



6抒钱、直接修改this.data蜓肆,雖然會(huì)改變數(shù)據(jù),但是頁(yè)面不會(huì)重新渲染谋币,無(wú)法改變頁(yè)面狀態(tài)仗扬,會(huì)造成數(shù)據(jù)不一致的情況

7、單次設(shè)置的數(shù)據(jù)不能超過(guò)1024KB蕾额,請(qǐng)盡量避免一次設(shè)置過(guò)多的數(shù)據(jù)

8早芭、不需要在this.data中預(yù)先定義,使用setData()方法會(huì)自動(dòng)創(chuàng)建該數(shù)據(jù)

this.setData({

? ? name:'張三'? //name在this.data中未定義诅蝶,但不會(huì)報(bào)錯(cuò)

})

name在this.data中未定義退个,但是這種寫(xiě)法不會(huì)報(bào)錯(cuò)精肃,而且還會(huì)在this.data.zhong創(chuàng)建name這條數(shù)據(jù)≈钠颍可以用this.data.name獲取到該條數(shù)據(jù)


二、對(duì)數(shù)組的操作筐眷,json操作和數(shù)組一樣黎烈。

1、數(shù)組的增加:


我們可以自己組裝一個(gè)對(duì)象如上圖的obj匀谣,然后用push()方法將其添加到數(shù)據(jù)的最后照棋。注意push的數(shù)據(jù)的index是+1的,也就是說(shuō)原本數(shù)組中index依次為0武翎,1烈炭,2,新增加的就是3宝恶,依次類(lèi)推符隙。如果想將數(shù)據(jù)插入到數(shù)據(jù)某個(gè)位置,那么可以合理運(yùn)用concat()的方法將數(shù)據(jù)合并到數(shù)據(jù)中垫毙。


也可以用splice()方法添加霹疫,第一個(gè)參數(shù)是插入的位置,第二個(gè)參數(shù)設(shè)為0综芥,則為添加丽蝎,若為大于0的的數(shù)字則為要?jiǎng)h除的個(gè)數(shù),第三個(gè)參數(shù)只有在第二個(gè)參數(shù)為0是使用膀藐,是添加的內(nèi)容屠阻。這種方法非常靈活,只需要改變第一個(gè)參數(shù)就可以將內(nèi)容添加到數(shù)據(jù)的任何一個(gè)地方额各。下面附上splice的用法国觉;


Splice

splice()方法向/從數(shù)組中添加/刪除元素,然后返回被刪除的元素組成的數(shù)組臊泰。

用于數(shù)組對(duì)象蛉加。

arr.splice(index, howmany, item1,…, itemX)

參數(shù) 描述

index 必需。整數(shù)缸逃,規(guī)定了添加/刪除元素的位置针饥,使用負(fù)數(shù)可從數(shù)組結(jié)尾處規(guī)定位置。

howmany 必需需频。要?jiǎng)h除的元素的數(shù)量丁眼。如果設(shè)置為0,則不會(huì)刪除元素昭殉。如果添加元素則這里應(yīng)該設(shè)置為0.

itemX 可選苞七。向數(shù)組添加的新項(xiàng)目藐守。在添加的時(shí)候用。

注意:這個(gè)方法會(huì)對(duì)原數(shù)組做出修改蹂风。獲得的也是新數(shù)組卢厂。


2、數(shù)組的刪除:


刪除也是用splice()方法實(shí)現(xiàn)的惠啄,ceshi.splice(1,1)就是從index為1的位置開(kāi)始慎恒,刪除1個(gè)元素。splice()用法參上撵渡。

3融柬、數(shù)組的修改:


將key值以數(shù)據(jù)路徑的形式賦值,可以達(dá)到修改數(shù)據(jù)中的某一條趋距,此處粒氧,我們只將ceshi[0].value的值改變?yōu)?oooo',其他數(shù)據(jù)未發(fā)生變化节腐。


也可以用這種方法修改數(shù)組的參數(shù)外盯,對(duì)這種方法有疑問(wèn)的可以參考setData()第二條。

原文鏈接:https://blog.csdn.net/namecz/article/details/79623550

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末翼雀,一起剝皮案震驚了整個(gè)濱河市门怪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌锅纺,老刑警劉巖掷空,帶你破解...
    沈念sama閱讀 221,198評(píng)論 6 514
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異囤锉,居然都是意外死亡坦弟,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,334評(píng)論 3 398
  • 文/潘曉璐 我一進(jìn)店門(mén)官地,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)酿傍,“玉大人,你說(shuō)我怎么就攤上這事驱入〕喑矗” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 167,643評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵亏较,是天一觀的道長(zhǎng)莺褒。 經(jīng)常有香客問(wèn)我,道長(zhǎng)雪情,這世上最難降的妖魔是什么遵岩? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,495評(píng)論 1 296
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上尘执,老公的妹妹穿的比我還像新娘舍哄。我一直安慰自己,他們只是感情好誊锭,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,502評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布表悬。 她就那樣靜靜地躺著,像睡著了一般丧靡。 火紅的嫁衣襯著肌膚如雪签孔。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書(shū)人閱讀 52,156評(píng)論 1 308
  • 那天窘行,我揣著相機(jī)與錄音,去河邊找鬼图仓。 笑死罐盔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的救崔。 我是一名探鬼主播惶看,決...
    沈念sama閱讀 40,743評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼六孵!你這毒婦竟也來(lái)了纬黎?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 39,659評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤劫窒,失蹤者是張志新(化名)和其女友劉穎本今,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體主巍,經(jīng)...
    沈念sama閱讀 46,200評(píng)論 1 319
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡冠息,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,282評(píng)論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了孕索。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片逛艰。...
    茶點(diǎn)故事閱讀 40,424評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖搞旭,靈堂內(nèi)的尸體忽然破棺而出散怖,到底是詐尸還是另有隱情,我是刑警寧澤肄渗,帶...
    沈念sama閱讀 36,107評(píng)論 5 349
  • 正文 年R本政府宣布镇眷,位于F島的核電站,受9級(jí)特大地震影響翎嫡,放射性物質(zhì)發(fā)生泄漏偏灿。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,789評(píng)論 3 333
  • 文/蒙蒙 一钝的、第九天 我趴在偏房一處隱蔽的房頂上張望翁垂。 院中可真熱鬧铆遭,春花似錦、人聲如沸沿猜。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,264評(píng)論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)啼肩。三九已至橄妆,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間祈坠,已是汗流浹背害碾。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,390評(píng)論 1 271
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留赦拘,地道東北人慌随。 一個(gè)月前我還...
    沈念sama閱讀 48,798評(píng)論 3 376
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像躺同,于是被迫代替她去往敵國(guó)和親阁猜。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,435評(píng)論 2 359

推薦閱讀更多精彩內(nèi)容