从js对象数组中删除某一个对象
这里先引用一下如下地址的内容
https://www.cnblogs.com/LoveQin/p/8663006.html
因为有需要删除对象数组中的某个对象,所以在网上查到这篇文章,用到了最后一段
/*删除数组中的某一个对象
_arr:数组
_obj:需删除的对象
*/
function removeAaary(_arr, _obj) {
var length = _arr.length;
for (var i = 0; i < length; i++) {
if (_arr[i] == _obj) {
if (i == 0) {
_arr.shift(); //删除并返回数组的第一个元素
return _arr;
}
else if (i == length - 1) {
_arr.pop(); //删除并返回数组的最后一个元素
return _arr;
}
else {
_arr.splice(i, 1); //删除下标为i的元素
return _arr;
}
}
}
}
但是执行调试后发现,当对象内容明明匹配的时候,调试并没有进入if语句,即当对象内容一样时(_arr[i]==_obj)没有起作用,之后想起来js对象之间是不能直接==进行比较的,可以将两个对象JSON.stringify()再进行比较,所以if
(_arr[i]==_obj)要改为if (JSON.stringify(_arr[i]) == JSON.stringify(_obj)) {才能进行比较。
特此记录一下,总是出这样的低级错误!

浙公网安备 33010602011771号