從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)) {才能進行比較。
特此記錄一下,總是出這樣的低級錯誤!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM