微信小程序实现点击按钮新增或删除数组对象一行数据,以及判断新增一行数据该数组是否已经存在

1.效果图
在这里插入图片描述

2.静态页面wxml

<view class="addbox">
         <view class='add-li' bindtap='addList' >增加</view>
    </view>
   <view class="rank">
      <view style="width:100%;">
         <view style="float:left;width:30%;font-size:32rpx;font-weight:bold;color:black;">  
           获奖等级
        </view>
      <view style="float:left;width:35%;font-size:32rpx;font-weight:bold;color:black;">
           奖品
      </view>
      <view style="float:left;width:15%;font-size:32rpx;font-weight:bold;color:black;">
           份数 
      </view>
      <view style="float:left;width:20%;font-size:32rpx;font-weight:bold;color:black;text-align:center;">
           操作
      </view>
      </view>
      <view  wx:for="{{lists}}" wx:key="{{index}}" style="width:100%;">
      <view style="float:left;width:30%;font-size:30rpx">  
         <input  data-id="{{item.rank}}" data-index="{{index}}"  value='{{item.rankName}}' placeholder="获奖等级"  bindtap='changeRankFn'></input>
      </view>
      <view style="float:left;width:35%;font-size:30rpx">
         <input class='create-li' data-id="{{item.reward}}" data-index="{{index}}"  value='{{item.reward}}' placeholder="请输入奖品"  bindblur='bindRewrdInput' ></input>
      </view>
      <view style="float:left;width:15%;font-size:30rpx">
          <input class='create-li' data-id="{{item.num}}"  data-index="{{index}}" value='{{item.num}}' placeholder="份数"  bindblur='bindNumInput'></input>
      </view>
      <view style="float:left;width:20%">
          <view class='del-li' data-index="{{index}}" bindtap='delList' >删除</view>
      </view>
      </view>
   </view> 
   

3.css样式

.addbox{
height:80rpx;
width:90%;
background:blue;
text-align:center;
margin:5rpx auto
}
.rank{
  padding: 35rpx;
  font-size: 14px;
  color: #919191;
  margin-bottom:200rpx;
}
.add-li{
font-size:35rpx;
width:100%;
height:80rpx;
line-height:80rpx
}
.del-li{
font-size:12px;
background:green;
width:50px;
height:15px;
text-align:center;
color:white;
}

4.js页面

Page({
data: {
    lists:[
      {
       "rank":"",
       "rankName":"",
       "reward":"",
       "num":0
      },
    ],
  },
  addList: function(){
    var  lists = this.data.lists;
    var newData = {
       "rank":"",
       "rankName":"",
       "reward":"",
       "num":0
    };
    lists.push(newData);//实质是添加lists数组内容,使for循环多一次
    this.setData({
      lists: lists,
    })  
  },
  delList: function (e) {
    var lists = this.data.lists;
    let index = e.currentTarget.dataset.index  // 获取数据的索引
    lists.splice(index,1)
    //lists.pop();      //实质是删除lists数组内容,使for循环少一次
    this.setData({
      lists: lists,
    })
  }, 
  bindRewrdInput:function(e){
    let that = this
    var val = e.detail.value;
    let index = e.currentTarget.dataset.index  // 获取数据的索引
    let reward = 'lists[' + index +'].reward'  // 获取lists[index].reward
   // var lists = that.data.lists;
    that.setData({
      [reward]:val
     })
     //console.log(lists)
  },
  bindNumInput:function(e){
    let that = this
    var val = e.detail.value;
    let index = e.currentTarget.dataset.index  // 获取数据的索引
    let num = 'lists[' + index +'].num'  // 获取lists[index].num
   // var lists = that.data.lists;
    that.setData({
      [num]:val
     })
     //console.log(lists)
  },
//修改开奖条件
changeRankFn: function(e) {
  let that = this
  let id = e.currentTarget.dataset.id // 获取传入的id
  let index = e.currentTarget.dataset.index  // 获取数据的索引
 // console.log(index)
  let rank = 'lists[' + index +'].rank'  // 获取lists[index].rank
  let rankName = 'lists[' + index +'].rankName'
  var lists = that.data.lists;

    wx.showActionSheet({
      itemList: ['特等奖', '一等奖','二等奖','三等奖'],
      success(res) {
        console.log(res.tapIndex)
        if (res.tapIndex === 0) {
          //判断数据是否已经存在  
           var flag1=0; 
           lists.forEach(item=>{
             console.log(item.rank)
             if(item.rank=='1'){
               flag1++;
              }
           })        
          if(flag1==0){
            that.setData({
              [rank]:"1",
              [rankName]:"特等奖",
             })
          }else{
            wx.showToast({
              title: '已添加特等奖',
              image: '/img/cuowu.png',
              duration: 1200
            })
          }     
        } else if (res.tapIndex === 1) {
           //判断数据是否已经存在  
           var flag2=0; 
           lists.forEach(item=>{
             console.log(item.rank)
             if(item.rank=='2'){
               flag2++;
              }
           })        
          if(flag2==0){
            that.setData({
              [rank]:"2",
              [rankName]:"一等奖",
            })
          }else{
            wx.showToast({
              title: '已添加一等奖',
              image: '/img/cuowu.png',
              duration: 1200
            })
          }      
        }else if (res.tapIndex === 2) {
          var flag3=0; 
           lists.forEach(item=>{
             console.log(item.rank)
             if(item.rank=='3'){
               flag3++;
              }
           })        
          if(flag3==0){
            that.setData({
              [rank]:"3",
              [rankName]:"二等奖",
            })
          }else{
            wx.showToast({
              title: '已添加二等奖',
              image: '/img/cuowu.png',
              duration: 1200
            })
        }
        }else if (res.tapIndex === 3) {
           //判断数据是否已经存在  
           var flag4=0; 
           lists.forEach(item=>{
             console.log(item.rank)
             if(item.rank=='4'){
               flag4++;
              }
           })        
          if(flag4==0){
            that.setData({
              [rank]:"4",
              [rankName]:"三等奖",
            })
          }else{
            wx.showToast({
              title: '已添加三等奖',
              image: '/img/cuowu.png',
              duration: 1200
            })
        } 
      }
        console.log(lists)
      },
      fail(res) {
        console.log(res.errMsg)
      }
    })
  )
  }
},
})

  • 6
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个简单的微信小程序代码片段,实现数组中搜索数据的功能: 1. 在页面的 wxml 文件中,添加一个输入框和一个按钮,用于输入搜索关键词和触发搜索: ```html <view class="search"> <input class="search-input" placeholder="请输入搜索关键词" bindinput="onInput" /> <button class="search-btn" bindtap="onSearch">搜索</button> </view> ``` 2. 在页面的 js 文件中,定义一个数组并初始化,然后实现 onInput 和 onSearch 两个函数: ```javascript Page({ data: { searchList: ['apple', 'banana', 'orange', 'pear', 'watermelon'], keyword: '' }, onInput: function(event) { this.setData({ keyword: event.detail.value }) }, onSearch: function() { var keyword = this.data.keyword var searchList = this.data.searchList var result = [] for (var i = 0; i < searchList.length; i++) { if (searchList[i].indexOf(keyword) >= 0) { result.push(searchList[i]) } } console.log('搜索结果:', result) } }) ``` 3. 在样式文件中添加搜索框样式: ```css .search { display: flex; align-items: center; justify-content: center; margin: 16px 0; } .search-input { flex: 1; height: 32px; border: 1px solid #ccc; border-radius: 16px; padding: 0 16px; margin-right: 8px; } .search-btn { width: 64px; height: 32px; background-color: #007aff; border-radius: 16px; color: #fff; font-size: 14px; line-height: 32px; text-align: center; } ``` 这样,用户在输入框中输入关键词后,点击搜索按钮,就会在控制台输出搜索结果了。当然,你也可以将搜索结果显示在页面上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值