微信小程序: 数组删除操作splice()的坑

在这里插入图片描述

Page({
  data: {
    godness: [{
      name: "杨超越"
    }, {
      name: "张天爱"
    }, {
      name: "徐璐"
    }, {
      name: "孙珍妮"
    }]
  },

  onLoad: function (options) {

  },

  deleteBtn: function(event) {
    let index = event.currentTarget.dataset.index
    this.setData({
      godness: this.data.godness.splice(index, 1)
    })
  }
})
<view style="display: flex; flex: row" wx:for="{{godness}}" wx:key="this">
  <view style="display: flex; align-items: center; justify-content: center; margin: 0 200rpx 50rpx 200rpx; border-bottom: 1px solid gray">{{item.name}}</view>
  <button data-index="{{index}}" size="mini" bindtap="deleteBtn">删除</button>
</view>

我用wx:for循环显示了数组中的各个元素, 现在想要删去第三个, 于是在网上寻找删除指定下标元素的方法, 找到了array.splice()方法, 但我有遇到了点击删除后, 显示是删除的元素, 于是就想到是否是splice的用法出现错误, 果然, 下面是splice的用法:
array.splice(index, 1): 是从index开始删除1个元素 , 并返回所删除的元素
下面是正确的删除代码:

deleteBtn: function(event) {
    let index = event.currentTarget.dataset.index
    this.data.godness.splice(index, 1)
    this.setData({
      godness: this.data.godness
    })
  }
  • 10
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
### 回答1: 可以使用 JavaScript 数组splice() 方法来删除数组中的指定元素。splice() 方法接受两个参数,第一个参数是要删除元素的索引,第二个参数是要删除的元素个数。例如: ``` let arr = [1, 2, 3, 4, 5]; arr.splice(2, 1); console.log(arr); // [1, 2, 4, 5] ``` 在这个例子中,我们使用 splice() 方法删除数组 arr 中索引为 2 的元素,即数字 3。 另外,还可以使用 filter() 方法来删除数组中满足特定条件的元素。例如: ``` let arr = [1, 2, 3, 4, 5]; arr = arr.filter(function(item) { return item !== 3; }); console.log(arr); // [1, 2, 4, 5] ``` 在这个例子中,我们使用 filter() 方法删除数组 arr 中值为 3 的元素。 使用这两种方法都可以在小程序删除数组中的指定数据。 ### 回答2: 要删除微信小程序中的数组指定数据,你可以按照以下步骤进行操作: 1. 首先,你需要获取到要操作数组。可以使用小程序提供的`getApp()`方法获取到全局的应用实例,然后通过该实例的`globalData`属性获取到存储在全局的数据。 2. 然后,你可以使用数组的`filter()`方法来创建一个新的数组,该新数组将不包含指定数据。`filter()`方法接受一个函数作为参数,该函数用于筛选出符合条件的数组元素并返回新的数组。 3. 在筛选函数中,你可以根据指定的条件进行筛选。例如,如果要删除值为10的数据,则可以使用条件`item !== 10`来判断元素是否不等于10,然后返回所有符合该条件的元素。 4. 最后,将得到的新数组重新赋值给原数组,即完成了删除指定数据的操作。你可以通过全局实例的`globalData`属性来重新赋值,或者将修改后的数组传递给其他需要使用该数组的页面或组件。 综上所述,你可以通过获取数组、使用`filter()`方法筛选出不包含指定数据的新数组,然后将新数组赋值给原数组来实现微信小程序中的删除数组指定数据的功能。 ### 回答3: 微信小程序删除数组中的指定数据可以通过以下步骤实现: 1. 首先,需要获取要操作数组。可以是初始化时定义的数组,也可以是从后台获取到的数组。 2. 然后,使用JavaScript的内置函数filter()来过滤数组。filter()函数接受一个回调函数作为参数,回调函数用于判断数组的每个元素是否满足删除条件。 3. 在回调函数中,使用if语句来判断当前元素是否需要删除。如果需要删除,则返回false;如果不需要删除,则返回true。 4. 当filter()函数执行完毕后,会返回一个新的数组,其中只包含满足条件的元素,即删除了指定数据的数组。 5. 最后,可以根据需要将新的数组存储到新的变量中,或者覆盖原来的数组,完成删除操作。 以下是示例代码: ``` // 获取要操作数组 var arr = [1, 2, 3, 4, 5]; // 使用filter()函数过滤数组 var filteredArr = arr.filter(function(item) { // 判断当前元素是否需要删除 if (item !== 3) { // 删除元素为3的情况 return true; // 不需要删除,返回true } else { return false; // 需要删除,返回false } }); // 将新的数组存储到新的变量中 console.log(filteredArr); // 输出 [1, 2, 4, 5] ``` 通过以上步骤,就可以在微信小程序删除数组中的指定数据。需要注意的是,使用filter()函数返回的是一个新的数组,原数组并没有被修改,如果需要覆盖原数组,需要将新的数组赋值给原数组变量。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值