11.02.2014, 08:52
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Использовать метод splice в многомерном массиве
Метод splice
arr.splice(index[, deleteCount, elem1, ..., elemN])
Удалить deleteCount элементов, начиная с номера index, а затем вставить elem1, ..., elemN на их место.
var arr = ["Я", "изучаю", "JavaScript"];
arr.splice(1, 1); // начиная с позиции 1, удалить 1 элемент
alert(arr); // осталось ["Я", "JavaScript"]
А можно ли использовать метод splice в многомерном массиве?Если можно,то научите,пожалуйста.Или ссылку где почитать.
Последний раз редактировалось dima***, 11.02.2014 в 08:57.
|
|
11.02.2014, 09:07
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,232
|
|
Сообщение от dima***
|
А можно ли использовать метод splice в многомерном массиве?
|
В JS нет, как таковых, многомерных массивов... Но есть массив, элементы которого так же есть массив.
Т.о. метод применяется только к элементу массива. Вот только вопрос что ты от него ждешь?
var a=[[1,2],[3,4],[5,6]];
a.splice(1,1);
alert(a);
Последний раз редактировалось ksa, 11.02.2014 в 09:10.
|
|
11.02.2014, 09:16
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Ага,понятно.А убрать нулевые элементы(1,3,5) с помощью splice нельзя?
|
|
11.02.2014, 09:20
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от dima***
|
Ага,понятно.А убрать нулевые элементы(1,3,5) с помощью splice нельзя?
|
alert(
[[1,2],[3,4],[5,6]].map(function (el) { return el.slice(1); })
);
|
|
11.02.2014, 09:30
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
А можно без функции,а с помощью цикла for?Чтобы уж до конца закрыть тему.
|
|
11.02.2014, 09:38
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от dima***
|
А можно без функции,а с помощью цикла for?Чтобы уж до конца закрыть тему.
|
Разумеется, можно ещё много как, но лучше для таких целей юзать map/reduce.
|
|
11.02.2014, 09:42
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Да,это понятно.Просто,не знаю,как объяснить. Хотелось бы,чтобы было самое примитивное решение(использовать for и splice-больше ничего-так можно?),а потом уже более прогрессивные решения.
|
|
11.02.2014, 09:45
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
for и splice-больше ничего-так можно?
|
Да.
var a = [[1,2],[3,4],[5,6]];
for (var i = 0; i < a.length; i++) {
a[i].splice(0, 1);
}
alert(a);
|
|
11.02.2014, 09:46
|
|
CacheVar
|
|
Регистрация: 19.08.2010
Сообщений: 14,232
|
|
Сообщение от dima***
|
А убрать нулевые элементы(1,3,5) с помощью splice нельзя?
|
Крути цикл по первому массиву, потом убирай тот "нулевой элемент"...
var a=[[1,2],[3,4],[5,6]];
for (var i=0; i<a.length; i++) a[i].splice(0,1);
alert(a);
|
|
11.02.2014, 09:47
|
Профессор
|
|
Регистрация: 13.12.2012
Сообщений: 283
|
|
Ага.Спасибо большое.
Также ,вроде,делал не получалось-
|
|
|
|