1. 程式人生 > >JS刪除陣列中指定的物件

JS刪除陣列中指定的物件

​​

 

  1.  封裝刪除方法
    /**刪除陣列中的某一個物件
         _arr:陣列
         _obj:需刪除的物件
         */
        function removeArray(_arr, _obj) {
            let length = _arr.length;
            for (let 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;
                    }
                }
            }
            console.log(';;;;;;--- rrrr' + _arr)
    
        }
  2. 例項方法 
    
    
            function removeClick() {
            
                    let arr = new Array(6)
                    arr[0] = "George"
                    arr[1] = "John"
                    arr[2] = "Thomas"
                    arr[3] = "James"
                    arr[4] = "Adrew"
                    arr[5] = "Martin"
                this.removeArray(arr, this.arr[0]);
                console.log(". . . .. . ." + this.array);
    
               
            }
    
  3. 輸出結果
     刪除前: George,John,Thomas,James,Adrew,Martin
     刪除後: John,Thomas,James,Adrew,Martin

    另一種方法

function removeClick(){
 let arr2 = new Array(6);
        arr2[0] = "George";
        arr2[1] = "John";
        arr2[2] = "Thomas";
        arr2[3] = "James";
        arr2[4] = "Adrew";
        arr2[5] = "Martin";
        this.remove1(arr2,"John");
    }

    function remove1(arr, val) {
        let index =indexOf1(arr, val);
        if (index > -1) {
            arr.splice(index, 1);
            console.log("arr2- - - -" + arr)
        }
    }

    function indexOf1(array, val) {
        for (let i = 0; i < array.length; i++) {
            if (array[i] === val) return i;
        }
        return -1;
    }