JavaScript - 根据对象数组中某一属性删除该项(根据数组对象属性删除里面的对象)

前言

有时候,我们需要根据 某一属性与属性值 找到数组对象中对应的该项。

例如,现有如下结构数组对象:

// Array Object
const arr = [
	{ name: '王佳斌', age: '20' },
	{ name: '孙玉红', age: '15' }
]

现在,我们要删除 年龄=15 岁的项,预期如下代码所示:

// Array Object
const arr = [
	{ name: '王佳斌', age: '20' }
	// 被删除
]

解决方案

由于使用了 splice() 方法,顾会改变原始数组。

以下函数做了封装,只需要传入相关参数,即可完成需求。

/*
 * 根据数组对象属性删除对应项
 * @param {Array} arr - 数组对象
 * @param {String} attr - 属性
 * @param {} value - 属性值
 * @return void
 */
 removeByValue(arr, attr, value)
 { 
  var index=0;
  for(var i in arr){
    if(arr[i][attr]==value){
      index=i;
      break;
    }
  }
  arr.splice(index,1);
}
// 原数组
const arr = [
	{ name: '王佳斌', age: '20' },
	{ name: '孙玉红', age: '15' }
]

// 移除age=15的项
removeByValue(arr, 'age', '15')

写在后面

你也可以将该方法用于微信小程序或uni-app等项目。

相关推荐
©️2020 CSDN 皮肤主题: 技术黑板 设计师:CSDN官方博客 返回首页