从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)) {才能进行比较。
特此记录一下,总是出这样的低级错误!