JavaScript FAQ: Deleting an array element

Question: How do I delete an array element in JavaScript?

Answer: Two different ways to delete an element myArray[n] from myArray are:

  • delete myArray[n] (faster, but leaves a gap at index n)
  • myArray.splice(n,1) (slower, but does not leave a gap in the array)

    For example, to delete the myArray[5] element from myArray (leaving a gap), use thedelete statement: delete myArray[5]. You can use myArray.hasOwnProperty(n) to check if the element myArray[n] is present in myArray. Note that setting the array elementto null or to undefined is not equivalent to deleting the element, as shown in the example below:

    var myArray = new Array(0,10,20,30,40);  
    
    // myArray[5] does not exist yet
    document.write(myArray[5]);                // undefined
    document.write(typeof myArray[5]);         // undefined
    document.write(myArray.hasOwnProperty(5)); // false
    
    // create myArray[5] by assignment
    myArray[5] = 1;                            // 1
    document.write(typeof myArray[5]);         // number
    document.write(myArray.hasOwnProperty(5)); // true
    
    myArray[5] = null;                         // null
    document.write(typeof myArray[5]);         // object
    document.write(myArray.hasOwnProperty(5)); // true
    
    myArray[5] = undefined;                    // undefined
    document.write(typeof myArray[5]);         // undefined
    document.write(myArray.hasOwnProperty(5)); // true
    
    delete myArray[5];                            
    document.write(myArray[5]);                // undefined
    document.write(typeof myArray[5]);         // undefined
    document.write(myArray.hasOwnProperty(5)); // false
    
    Just like deleting an array element, you can also delete an object property. However, in JavaScript you cannot delete a variable declared with the var keyword at the time of first use.
posted @ 2015-02-17 11:15  princessd8251  阅读(258)  评论(0)    收藏  举报