Fork me on GitHub

二级导航栏

微信小程序 数组(增,删,改,查)

最近在做一个小程序的demo里。由于不向后台请求数据,所以就涉及到本地数据的操作,本文以数据的增删改查为例

1
2
3
4
5
6
7
8
9
10
11
12
13
globalData:{
userInfo:null,
notes:[
{
'title':'第一次笔记',
'detail':'这是笔记详情,仅限测试'
},
{
'title':'第二次笔记',
'detail':'可以添加一个新的笔记'
}
],
}

首先这是原始数据,json的数组

我们尝试对数据进行操作,同时渲染到页面。

1,数据的添加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
//保存备忘录
saveNote: function(e){
var obj = e.datail.value;
var title = obj.title;
var detail = obj.detail;
if(title.length<=0 || detail.length<=0>){
return;
}
this.data.notes.push(obj);
var updata = this.data.notes;
console.log(updata);
app.globaData.notes = update;
wx.redirectTo({
url:'../notes/notes'
});
}

在获取到表单数据后,自己组装一个对象,然后通过push()的方法添加一条数据,注意push的数据的index是+1的,也就是说原本数组中的index依次为0,1,2,3,依次类推。

如果想在前面插入数据,就要用到数组合并的操作了,concat()方法可以选择合并到前面或者后面例如newarray.concat(notes);。

2,数据的删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
wx:showModal({
title:'提示',
cntent:'是否删除该记录',
success: function(res){
if(res.confirm){
var notes = that.data.notes;
notes.splice(id,1);
that.setData({
notes:noes
})
console.log("删除成功");
}
}
})

小程序里面没有remove方法,所以删除选择split,notes.splice(id,i)就可以从index为id的位置开始,删除i鸽元素。

3,数据的修改

notes = obj可以把数组中的index为i的元素设置为obj。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
saveNote: function(e){
var obj = e.detail.value;
var title = obj.title;
var detail = obj.detail;
if(title.length<=0 || detail.length<=0){
return;
}
var that = this;
var notes = that.data.notes;
var id = that.data.id;
notes[id] = obj;
app.globalData.notes = notes;
wx.redirectTo({
URL:'../notes/notes'
})
}
-------------本文结束感谢您的阅读-------------