js删除数组中的指定对象

160 阅读1分钟

实现效果

在这里插入图片描述

封装工具函数

思路就是 , 遍历取到每个对象和对应下标,通过自定义的函数判断该对象是否删除,

/**
* 删除数组中指定对象
* @param {OBject} arr 
* @param {function} func 返回ture或false
*/
function arrDelete(arr, func) {
 arr.forEach((item, i) => {
   if (func(item)) {
     arr.splice(i, 1)
   }
 })
}

完整demo

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<meta name="viewport" content="width=device-width, initial-scale=1.0">
	<title>Document</title>
</head>
<body>
	<h1>js删除数组中的指定对象</h1>
	<script type="text/javascript">
		let arr = [{name:'lzp',age:18},{name:'老王',age:14},{name:'小白',age:18},{name:'苏格拉',age:45},{name:'少年',age:23}]
		// 克隆一个arr1
		let arr2 = JSON.parse(JSON.stringify(arr)); 
		console.log(arr);
		arrDelete(arr2,(item)=>item.age==18);
		console.log("删除年龄为18的人后,数组为:")
		console.log(arr2);

		/**
		 * 删除数组中指定对象
		 * @param {OBject} arr 
		 * @param {function} func 返回ture或false
		 */
		function arrDelete(arr, func) {
		  // 遍历取到每个对象和对应下标,通过自定义的函数判断该对象是否删除,
		  arr.forEach((item, i) => {
		    if (func(item)) {
		      arr.splice(i, 1)
		    }
		  })
		}
	</script>
</body>
</html>