var cache = [];
cache[0] = "0";
cache[1] = "1";
cache[2] = "2";
cache[3] = "3";
cache[4] = "4";
cache["r"] = "r";
console.log(cache.length);
for(key in cache){
if(isNaN(key))continue;
else cache.splice(key,1); // cache.splice(key) is working fine, ***
}
console.log(cache);
Вопроса: в строке ***
Почему сплайсинг (ключ) работает нормально (Удаление всех элементов с индексом Числового) и соединение (ключ, 1) не работают нормально (не Удаление элементов с помощью числового индекса). Даже я попробовалJavascript Массив сращивание Не работает отлично
splice(key,1) // Not working as splice(key)
splice(key--,1) // Even not working as splice(key)
splice(key,0) // not deleting any thing
Вы можете копировать и вставлять код в Firebug консоли для тестирования.
Можете ли вы пояснить, что «не работает»? Что происходит, когда вы пытаетесь использовать код и как он отличается от того, что вы ожидаете? Вы получаете сообщение об ошибке? – Guffa
Функция сращивания удаляет элемент из массива. Он должен удалить весь элемент с числовым индексом, но его удаление немного –
, поэтому сплайсинг ожидает, что я предоставил числовой индекс, поэтому (n, x) означает начало с числового индекса n и удаление значений x после индекса n. если n не является числовым, а ключом, то не нужно x. Так что он отлично работает x удаляется. –