实现效果
封装工具函数
思路就是 , 遍历取到每个对象和对应下标,通过自定义的函数判断该对象是否删除,
/**
* 删除数组中指定对象
* @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>