1.从当前列表中删除

//从当前列表中删除
this.namelist.splice(scope.index, 1)

2.删除对象中的某个属性
 

//删除对象中的某个属性
//Vue.delete(this.namelist, 'name')
this.$delete(this.form,'members1')
this.$delete(this.form,'leader1')

 

补充两个实用的方法:从数组中查index

    /**
     * 从数组中取出指定名称的index
     * @param  arr 数组
     * @param  key 数组属性名称
     * @param  key 数组属性值
     */
    search(arr, key, value) {
      //返回寻找当前元素的index
      var i = arr.length
      for (let j = 0; j < i; j++) {
        if (arr[j][key] == value) {
          return j
        }
      }
      return false
    },


    /**
     * 构造一个删除数组元素的函数
     *
     * @param array
     *            数组
     * @param element
     *            要删除的元素
     * @return array 新数组
     */
    removeElement(array, element) {
      var index = this.search(array, 'name', element)
      if (index > -1) {
        array.splice(index, 1)
      }
      return array
    }


    /**
     * 从数组中取出指定名称的对象
     * @param  arr 数组
     * @param  key 数组属性名称
     * @param  key 数组属性值
     */
    searchObject(arr, key, value) {
      //返回寻找当前元素的index
      var i = arr.length
      for (let j = 0; j < i; j++) {
        if (arr[j][key] == value) {
          return arr[j]
        }
      }
      return false
    },

 

 

 

------------------------------------------------------------------------------------------------------------------------------------------------------------------------

第一种用最常见的ForEach循环来对比元素找到之后将其删除:

var colors = ["red", "blue", "grey"];

colors.forEach(function(item, index, arr) {
    if(item == "red") {
        arr.splice(index, 1);
    }
});

 

第二种我们用循环中的filter方法:

var colors = ["red", "blue", "grey"];

colors = colors.filter(function(item) {
    return item != "red"
});

console.log(colors);    //["blue", "grey"]

 

Logo

前往低代码交流专区

更多推荐