2017-01-13 6 views
0

У меня возникли проблемы, выяснить, как удалить элемент из массива, в котором элементы проиндексированы аналогично следующий:Удалить элемент из массива JavaScript с произвольными числовыми индексами

arr[32] = 123 
arr[39] = 456 
arr[92] = 789 
... 

два пути у меня есть пытались удалить отдельные, определенные элементы из указанного массива, привели к удалению всех элементов.


Покушение Способ № 1:

arr.splice(39, 1); 

Покушение Способ № 2:

arr.forEach(function(val, key) { 
    if (val == 456) { 
     arr.splice(key, 1); 
    } 
} 

Теперь, очевидно, что это не совсем то, что мой код выглядит, но показывает, что я пробовал достаточно хорошо. Если мне не хватает какой-либо важной информации или вы хотите, чтобы я выбрал код из источника, чтобы узнать, находится ли он в источнике вместо методологии, обратитесь к

+2

поэтому у вас есть разреженный массив, и вы хотите, чтобы удалить элемент. что пошло не так? –

+1

@NinaScholz "_ Два пути, которые я пробовал ... привели к удалению всех элементов ._" – Teemu

+1

[Метод 1 не удаляет другие элементы] (https://jsfiddle.net/jfm3x6k4/). И [также не метод 2] (https://jsfiddle.net/jfm3x6k4/1/). – 4castle

ответ

2

При скрещивании изменений длина массива и заданного массива кажется чтобы полагаться на индексы, вы можете просто установить элемент на undefined.

var arr = []; 
 

 
arr[32] = 123; 
 
arr[39] = 456; 
 
arr[92] = 789; 
 

 
arr[39] = undefined; 
 

 
console.log(arr[92]);

 Смежные вопросы

  • Нет связанных вопросов^_^