数组增删改查
发布于 4 年前 作者 vzhou 1111 次浏览 来自 分享

排序:
loadData:function(){
let todo = wx.getStorageSync(‘yList’);
if(todo){
this.setData({yList: todo.sort(function (a, b) {
return a.date<b.date?1:-1; //升序改成> 数组按日期排序
})
});
}
this.loadTotal();加载数量统计
},

合计:
loadTotal:function(){
let todoName = this.data.yList.length;
let todoNumber = 0;
let i=0;
while(i < todoName){
todoNumber= todoNumber+parseInt(this.data.yList[i].number) ;
i++; 传统的计算,应该用es6的简单吧
}
this.setData({totalName:todoName,totalNumber:todoNumber});

},

搜索:
seachName:function(e){
console.log(e.target.dataset.name)
var arr=this.data.yList
arr = this.data.yList.filter(function(x) {
return x.name == e.target.dataset.name
})查询name字段,然后让查询出来的数组,加载到一个新的列表里,老的列表隐藏,返回时清空新的列表,老的列表显示
this.setData({showNewBtn:false,showList:false,showBackBtn:true,seachList:arr,seach:e.target.dataset.name})
},

新增:
submitNew:function(){
let arr=this.data.yList;
let i=0;
arr.unshift({
id:new Date().getTime(),
name:this.data.name,
number:this.data.number,
date:this.data.date,
note:this.data.note,
state:’’
})在前面新增一条数据
this.setData({yList:arr,name:’’,note:’’});
this.save();
},

删除:
submitDel:function(){
let id=this.data.id; 绝对id,这个是个时间戳,如果是下标读取,正常没问题当搜索出来的,点击删除就出问题了,删除了只是搜索出来的下标,不是原数组的下标。
let arr=this.data.yList;
let that=this;
wx.showModal({
title: ${this.data.name} ${this.data.number}个,
content: ${this.data.date} ${this.data.note},
confirmText: “删除”,
cancelText: “返回”,
success: function (res) {
if (res.confirm) {
let i=that.data.yList.findIndex(item => item.id === id);找到这条数据
arr.splice(i,1);删除这条数据
that.setData({yList:arr,id:’’})
that.hideEdit();
that.save();
that.hideBack();
}else{
console.log(‘返回’)
}
}
});
},

编辑:
submitEdit:function(){
let id=this.data.id;
let i=this.data.yList.findIndex(item => item.id === id);找到这条数据的下标
let arr=this.data.yList;
arr[i].name = this.data.name;
arr[i].number = this.data.number;
arr[i].date = this.data.date;
arr[i].note = this.data.note;
arr[i].state = this.data.state;改写这条数据的值
this.setData({yList:arr,id:’’,seachList:[],seach:’’});
wx.showToast({title: ‘更新成功’,icon: ‘success’,duration: 500});
this.hideEdit();
this.save();
},
增删改查就这样了。

回到顶部