jquery删除数组指定元素
使用 splice() 方法删除指定元素
通过索引位置直接删除数组元素,需先获取目标元素的索引。例如删除值为 target 的元素:
var arr = [1, 2, 3, 'target', 5];
var index = arr.indexOf('target');
if (index > -1) {
arr.splice(index, 1);
}
此方法会修改原数组,splice() 的第二个参数表示删除的个数。
使用 grep() 方法过滤数组
jQuery 的 $.grep() 可过滤数组并返回新数组,原数组不受影响。删除所有等于 target 的元素:
var arr = [1, 2, 'target', 4, 'target'];
arr = $.grep(arr, function(value) {
return value !== 'target';
});
使用 not() 方法结合数组转换
若需从类数组对象(如 jQuery 对象)中删除元素,可先用 $.makeArray() 转换:
var $items = $('.list-item');
var itemsArray = $.makeArray($items);
itemsArray = $(itemsArray).not('.to-remove').get();
使用 ES6 filter() 方法
现代浏览器支持原生 filter(),实现不可变删除:

const arr = [10, 20, 30, 40];
const newArr = arr.filter(item => item !== 30);
注意事项
indexOf()无法检测对象引用,需自行实现深度比较- 删除多个相同值时,建议逆向遍历数组避免索引错位
- 类数组对象需先转换为真数组再操作






