小編給大家分享一下微信小程序中數(shù)組操作的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
創(chuàng)新互聯(lián)公司基于成都重慶香港及美國等地區(qū)分布式IDC機房數(shù)據(jù)中心構建的電信大帶寬,聯(lián)通大帶寬,移動大帶寬,多線BGP大帶寬租用,是為眾多客戶提供專業(yè)服務器托管報價,主機托管價格性價比高,為金融證券行業(yè)達州托管服務器,ai人工智能服務器托管提供bgp線路100M獨享,G口帶寬及機柜租用的專業(yè)成都idc公司。
相信在小程序推出公測之后,很多小伙伴都已經(jīng)抓緊申請注冊小程序了。在開發(fā)階段中也碰到了很多的問題,例如wx.request數(shù)據(jù)請求不成功,在數(shù)組操作時,不知道如何往數(shù)組里push數(shù)據(jù),input如何監(jiān)聽用戶輸入的狀態(tài),css的background-image無法獲取本地資源等等。
今天我們主要講的是,數(shù)組操作。
相信對于用過vuejs、reactjs等mvvm框架的童鞋,微信小程序的數(shù)組操作就顯得很簡單啦,原理是一樣的。
這是簡單做的一個demo,已經(jīng)上傳到github,到時大伙可以直接下載。我們主要講在數(shù)組中常用的一些操作方法,對數(shù)組向前向后插入新的數(shù)據(jù)、修改數(shù)組、刪除數(shù)組、清空數(shù)組,其他的一些操作方式,我會給大伙學習思路。
demo數(shù)組操作的例子路徑:/pages/array/array.wxml
Page({ data: { list:[{ id:1, name:'應季鮮果', count:1 },{ id:2, name:'精致糕點', count:6 },{ id:3, name:'全球美食烘培原料', count:12 },{ id:4, name:'無辣不歡生猛海鮮', count:5 }] } })
我們初始化一些數(shù)據(jù),我們需要對list的添加新的數(shù)據(jù)里,需要用到JavaScript concat()
的方法,concat()
方法用于連接兩個或多個數(shù)組,該方法不會改變現(xiàn)有的數(shù)組。
其實我們的所說的向前向后插入數(shù)據(jù),其實也就是把兩個數(shù)組合拼起來,組成一個新的數(shù)組,然后再使用this.setData()
即可渲染到頁面上。
我們看一下在微信小程序里的代碼。
向前插入數(shù)據(jù)demo
//向前增加數(shù)據(jù) add_before:function (){ //要增加的數(shù)組 var newarray = [{ id:6, name:'向前增加數(shù)據(jù)--'+new Date().getTime() , count:89 }]; //使用concat()來把兩個數(shù)組合拼起來 this.data.list = newarray.concat(this.data.list); //將合拼之后的數(shù)據(jù),發(fā)送到視圖層,即渲染頁面 //大伙請記錄,修改了數(shù)據(jù)后,一定要再次執(zhí)行`this.setData()`,頁面才會渲染數(shù)據(jù)的。 this.setData({ 'list': this.data.list }); }
向后插入數(shù)據(jù)demo
//向后增加數(shù)據(jù) add_after:function (){ //要增加的數(shù)組 var newarray = [{ id:5, name:'向后增加數(shù)據(jù)--'+new Date().getTime() , count:89 }]; this.setData({ 'list':this.data.list.concat(newarray) }); },
細心的小伙伴應該會發(fā)現(xiàn),這兩段在用concat()
合拼數(shù)據(jù)時,concat括號里的數(shù)據(jù)是不一樣的。向前向后插入數(shù)據(jù)的區(qū)別就在這里了。
//假設這一段是我們要新增的數(shù)組 var newarray = [{ id:5, name:'向后增加數(shù)據(jù)--'+new Date().getTime() , count:89 }]; //向前--用newarray與this.data.list合拼 this.data.list = newarray.concat(this.data.list); //向后--用this.data.list與newarray合拼 this.data.list = this.data.list.concat(newarray);
對展示的數(shù)據(jù)進行修改,在開發(fā)過程是常見得不在常見的事情啦。
//修改數(shù)組 edit:function (e){ //這個參數(shù)“e”的具體作用,請參考微信小程序官方提供的說明,地址為https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/event.html?t=20161107 var dataset = e.target.dataset; var Index = dataset.index; //在通過在wxml頁面里使用 data-index="{{index}}"傳遞過來的,是為識別正在編輯修改哪個數(shù)組。 //我們要修改的數(shù)組 this.data.list[Index].name = '修改了內(nèi)容'+new Date().getTime(); //將合拼之后的數(shù)據(jù),發(fā)送到視圖層,即渲染頁面 //大伙請記錄,修改了數(shù)據(jù)后,一定要再次執(zhí)行`this.setData()`,頁面才會渲染數(shù)據(jù)的。 this.setData({ list:this.data.list }); }
有增有改也必有刪。
刪除需要用到JavaScript splice()
方式,splice()
方法向/從數(shù)組中添加/刪除項目,然后返回被刪除的項目。
//刪除 remove:function (e){ var dataset = e.target.dataset; var Index = dataset.index; //通過`index`識別要刪除第幾條數(shù)據(jù),第二個數(shù)據(jù)為要刪除的項目數(shù)量,通常為1 this.data.list.splice(Index,1); //渲染數(shù)據(jù) this.setData({ list:this.data.list }); }
增修刪之后,還得再來一個清空數(shù)據(jù)呀。
//清空 clear:function (){ //其實就是讓數(shù)組變成一個空數(shù)組即可 this.setData({ list:{} }); }
今天我們主要講了增修刪清空,其實對數(shù)組的操作還有很多方式的,可以看以下截圖。
以上是“微信小程序中數(shù)組操作的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關注創(chuàng)新互聯(lián)行業(yè)資訊頻道!