Вставка, удаление и замена элементов с помощью Array.splice()
Когда нужно произвести какие-то изменения в массиве, метод JavaScript splice может прийти на помощь. Он позволяет осуществлять вставку, удаление и замену элементов в массиве JavaScript .
Рассмотрим аргументы, передаваемые в метод splice() .
Array.splice (start_index, number_of_elements_to_remove) :
- start_index — индекс в массиве, с которого начинается вставка или удаление элементов;
- number_of_elements_to_remove — задает количество элементов, которое необходимо удалить, начиная со star_index .
Все элементы, следующие за number_of_elements_to_remove , будут вставлены в массив, начиная с start_index . Они могут быть любого типа, включая строки, числа, булевы значения, объекты, функции, NULL , undefined , и т.д.
Для более детального изучения параметров метода Array.prototype.splice() Javascript воспользуйтесь MDN.
Давайте начнем с простого примера, демонстрирующего, как вставить число в массив с помощью метода Array.splice() .
Представьте, что у нас есть массив [1,3,4] , и мы хотим вставить в него 2 между 1 и 3 . Пример реализации:
var my_array = [1,3,4]; var start_index = 1; var number_of_elements_to_remove = 0; my_array.splice(start_index, number_of_elements_to_remove, 2); console.log(my_array); //[1,2,3,4];
Обратите внимание, что JavaScript array splice воздействует непосредственно на массив. Таким образом, вызванный my_array метод splace() вместо того, чтобы вернуть новый массив, обновит my_array .
Пример удаления элемента из массива в JavaScript :
var my_array = ["a","b","c","k","d"]; var start_index = 3 var number_of_elements_to_remove = 1; var removed_elements = my_array.splice(start_index, number_of_elements_to_remove); console.log(removed_elements); //["k"] console.log(my_array); //["a","b","c","d"];
Обратите внимание, что в этом примере метод Array.splice() возвращает массив из удаленных элементов.
Взглянем на пример замены элементов в массиве JavaScript с помощью метода splice JavaScript :
var my_array = ["бейсбол", "баскетбол", "теннис", "гольф"]; var start_index = 1 var number_of_elements_to_remove = 2; var removed_elements = my_array.splice(start_index, number_of_elements_to_remove, "бокс", "боулоинг", "волейбол"); console.log(removed_elements); //["теннис", "гольф"] console.log(my_array); //["бейсбол", "бокс", "боулинг", "волейбол", "гольф"];
Приведенный выше пример заменяет » баскетбол » и » теннис » на » бокс «, » боулинг » и » волейбол «. Он может показаться немного запутанным из-за всех проведенных операций. Разберем все операции шаг за шагом. Для начала мы сообщаем методу splace() начальную позицию my_array [1] . Затем number_of_elements_to_remove задаем 2, поэтому метод удаляет my_array [1] и my_array [2] . И, наконец, начиная со start_index my_array[1] , вставляем в массив my_array элементы.
Метод JavaScript splace хорош, когда нужно вставить или удалить значения из массива t . Если массив уже отсортирован, метод splace() подходит, чтобы явно расположить новые значения в массиве. Он также хорошо работает, когда нужно удалить значения из массива по индексу. Обратите внимание на то, что метод splace() действует непосредственно на массив и возвращает только те значения, которые были удалены или вырезаны из массива.
ВЛ Виктория Лебедева автор-переводчик статьи «
Как заменить элементы одного массива элементами другого по заданному правилу?
Надо обернуть весь код в вопросе в тег code – тут есть кнопка с угловыми скобками в панели инструментов. Иначе знак «меньше» воспринимается как открывающий тег и ломает дальнейшую разметку. В меню «три точки» есть пункт «Редактировать» – поправьте вопрос, пожалуйста.
Решения вопроса 2
Сергей Соколов @sergiks Куратор тега JavaScript
Забыли .length – вероятно, собирались перебирать i от 0 до длины строки arr1 . Тут не массивы, а две строки.
for (i=0; i
Вложенный цикл не нужен. Достаточно перебрать каждую цифру входа.
Чтобы найти соответствующую цифре i букву, достаточно взять i-й элемент строки arr2 :
arr2[ i ];
Коротко, в одну строку это можно решить через преобразование строки в массив и применение функции к каждому элементу.
В одну строку
var arr1 = '3649824598'; var arr2 ='АБВГДЕЖЗИК'; arr1.split('').map(n => arr2[n]).join('') // ГЖДКИВДЕКИ
- split('') сделает из строки массив цифр;
- map() применит к каждой цифре функцию, которая заменит цифру на соотв. букву из arr2 ;
- join('') склеит элементы массива (теперь уже буквы) в одну строку.
Как заменить элемент массива java
Чтобы заменить элемент массива в Java , вы можете использовать обычную операцию присваивания, но в квадратных скобках указать индекс элемента, который вы хотите заменить. Например:
int[] arr = 1, 2, 3, 4>; arr[2] = 5; // заменяем третий элемент (индекс 2) на 5 System.out.println(Arrays.toString(arr)); // => [1, 2, 5, 4]
Как заменить элемент массива на указанное значение? [закрыт]
Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.
Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.
Закрыт 5 лет назад .
Допустим, я хочу заменить 3 на 2, как это сделать?
int mass[size] = < 3, 6, 8, 5, 1 >;
Отслеживать
28.8k 12 12 золотых знаков 59 59 серебряных знаков 118 118 бронзовых знаков
задан 22 окт 2018 в 10:04
62 1 1 золотой знак 1 1 серебряный знак 6 6 бронзовых знаков
Например, mass[0] = 2;
22 окт 2018 в 10:09
Вы хотите заменить все вхождения 3 на 2 или только какое-то одно? Или вам гарантируется, что вхождение всегда единственно?
22 окт 2018 в 16:02
2 ответа 2
Сортировка: Сброс на вариант по умолчанию
В общем случае для замены одного значения на другое во всём массиве (или другом контейнере данных) можно использовать стандартный алгоритм std::replace :
#include #include #include int main() < int mass[] = < 3, 6, 8, 5, 1 >; for(int v: mass) std::cout
3 6 8 5 1 2 6 8 5 1
Отслеживать
ответ дан 22 окт 2018 в 15:46
28.8k 12 12 золотых знаков 59 59 серебряных знаков 118 118 бронзовых знаков
Самый простой вариант
int mass[size] = < 3, 6, 8, 5, 1 >; mass[0] = 2;
Отслеживать
ответ дан 22 окт 2018 в 10:10
Alexshev92 Alexshev92
3,135 6 6 золотых знаков 18 18 серебряных знаков 34 34 бронзовых знака
- c++
- массивы
-
Важное на Мете
Похожие
Дизайн сайта / логотип © 2024 Stack Exchange Inc; пользовательские материалы лицензированы в соответствии с CC BY-SA . rev 2024.1.9.3159
Нажимая «Принять все файлы cookie» вы соглашаетесь, что Stack Exchange может хранить файлы cookie на вашем устройстве и раскрывать информацию в соответствии с нашей Политикой в отношении файлов cookie.