从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)) {才能进行比较。
特此记录一下,总是出这样的低级错误!
posted @ 2021-08-27 11:16  琳蕊奕  阅读(13588)  评论(0编辑  收藏  举报