Есть 2 разных способа удалить элемент n из массива someArray:
delete someArray1[n]; someArray2.splice(n,1);
Первый является более быстрым, однако он по сути полностью не удаляет элемент, а задаёт его значение в undefined.
Второй способ более медленный, но он удаляет элемент полностью. Об этом уже упоминалось в этом вопросе.
Предположим, что у нас есть массив из нескольких элементов. Как известно, убедиться, что массив содержит некий элемент, можно с помощью функции someArray.hasOwnProperty(n). Если же пытаться получить доступ к несуществующему элементу массива, то получим undefined:
var someArray = new Array(2,6,7,17); alert(someArray.hasOwnProperty(3)); // true alert(someArray[3]); // 17 alert(someArray.hasOwnProperty(4)); // false (элемента не существует) alert(someArray[4]); // undefined
Теперь удалим, к примеру, последний массива (someArray[3]) через оператор delete:
var someArray = new Array(2,6,7,17); delete someArray[3]; alert(someArray[3]); // undefined alert(someArray.hasOwnProperty(3)); // true
Как видите, элемент остаётся, хотя и возвращает undefined. Другими словами, наш массив будет иметь вид [2,6,7,undefined].
Теперь пойдём другим путём:
var someArray = new Array(2,6,7,17); someArray.splice(3,1); // Удалим один (третий и последний) элемент массива alert(someArray.hasOwnProperty(3)); // false, ведь его больше нет alert(someArray[3]); // undefined
Естественно, метод someArray.splice(n,m) может использоваться и для удаления нескольких элементов подряд (удаляется m элементов, начиная с someArray[n]).