首頁  >  文章  >  微信小程式  >  微信小程式學習數組操作

微信小程式學習數組操作

PHPz
PHPz原創
2018-05-18 14:21:229386瀏覽

前言

相信在小程式推出公測之後,許多小夥伴都已經抓緊申請註冊小程式了。在開發階段中也碰到了很多的問題,例如wx.request數據請求不成功,在數組操作時,不知道如何往數組裡push數據,input如何監聽用戶輸入的狀態,css的background-image無法獲取本地資源等等,本部落格會出一個專題,給碰到這些問題的朋友們解決想法。

陣列運算

今天我們主要講的是,陣列運算。
相信對於用過vuejsreactjs等mvvm框架的童鞋,微信小程式的陣列運算就顯得很簡單啦,原理是一樣的。

微信小程式學習數組操作

微信小程式學習數組操作

這是簡單做的一個demo,已經上傳 github,到時大夥可以直接下載。我們主要講在數組中常用的一些操作方法,對數組向前向後插入新的資料、修改數組、刪除數組、清空數組,其他的一些操作方式,我會給大夥學習思路。

demo陣列操作的範例路徑:
/pages/<a href="http://www.php.cn/wiki/1041.html" target="_blank">array</a>/array.w<a href="http://www.php.cn/wiki/1527.html" target="_blank">xml</a>

##向前向後插入新的數據

Page({
  data: {
        list:[{
        id:1,
        name:'应季鲜果',
        count:1
        },{
        id:2,
        name:'精致糕点',
        count:6
        },{
        id:3,
        name:'全球美食烘培原料',
        count:12
        },{
        id:4,
        name:'无辣不欢生猛海鲜',
        count:5
        }]
  }
})

我們初始化一些數據,我們需要對list的添加新的數據裡,需要用到

JavaScript<a href="http://www.php.cn/wiki/48.html" target="_blank"> concat()</a>的方法,concat() 方法用於連接兩個或多個數組,該方法不會改變現有的數組。 其實我們的所說的向前向後
插入資料,其實也就是把兩個數組合拼起來,組成一個新的數組,然後再使用this. set<a href="http://www.php.cn/code/8209.html" target="_blank">Data()</a>即可渲染到頁面上。 我們來看看在微信小程式裡的程式碼。

向前插入資料demo

 //向前增加数据
  add_before:function (){


//要增加的数组
var newarray = [{
    id:6,
    name:'向前增加数据--'+new Date().getTime() ,
    count:89
}];

//使用concat()来把两个数组合拼起来
this.data.list = newarray.concat(this.data.list);

//将合拼之后的数据,发送到视图层,即渲染页面
//大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。
this.setData({
      'list':    this.data.list
 });


  }

向後插入資料demo

  //向后增加数据
  add_after:function (){

    //要增加的数组
    var newarray = [{
            id:5,
            name:'向后增加数据--'+new Date().getTime() ,
            count:89
    }];


    this.setData({
        'list':this.data.list.concat(newarray)
    });


  },
細心的小夥伴應該會發現,這兩段在用

concat()合拼資料時,concat括號裡的資料是不一樣的。向前向後插入資料的差異就在這裡了。

//假设这一段是我们要新增的数组
var newarray = [{
        id:5,
        name:'向后增加数据--'+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);
修改陣列

對展示的資料進行修改,在開發過程中常見得不在常見的事情啦。

  //修改数组
  edit:function (e){

//这个参数“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}}"传递过来的,是为识别正在编辑修改哪个数组。

//我们要修改的数组
this.data.list[Index].name = '修改了内容'+new Date().getTime();

//将合拼之后的数据,发送到视图层,即渲染页面
//大伙请记录,修改了数据后,一定要再次执行`this.setData()`,页面才会渲染数据的。
this.setData({
    list:this.data.list
});



  }
刪除某條資料

有增有改也必有刪除。

刪除需要用到
JavaScript splice()方式,splice() 方法向/從陣列中新增/刪除項目,然後傳回被刪除的項目。

//删除
  remove:function (e){

    var dataset = e.target.dataset;
    var Index = dataset.index;

    //通过`index`识别要删除第几条数据,第二个数据为要删除的项目数量,通常为1
    this.data.list.splice(Index,1);

    //渲染数据
    this.setData({
        list:this.data.list
    });


  }
清空資料

增修刪之後,還要再來一個清空資料呀。

//清空
  clear:function (){

    //其实就是让数组变成一个空数组即可
      this.setData({
          list:{}
      });

  }
總結

今天我們主要講了增修刪清空,其實對陣列的操作還有很多方式的,可以看以下截圖。

微信小程式學習數組操作


#

以上是微信小程式學習數組操作的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn