Из предыдущей заметки стало известно как работает метод splice, реализующий добавление, удаление и замену элементов в массиве.
Теперь следует самостоятельно выполнить практическую задачу по этой теме.
Есть массив, про который заранее известно, что в нем точно больше одного элемента. Но неизвестно сколько именно!!!
Пусть им будет такой массив с фруктами: var fruits = ["яблоко", "апельсин", "груша", "гранат"].
Не забывайте, что по условию неизвестно, сколько точно в нем элементов, их может быть и 100 и 200.
Задача состоит в том, чтобы с помощью метода splice заменить в массиве предпоследний фрукт на "ананас" и вывести весь массив на экран.
Когда это будет сделано, следует проверить получившийся код на таком массиве: var fruits = ["банан", "мандарин", "манго"], в котором мандарин должен быть заменен на ананас.
Чтобы решить эту задачу, можно сначала немного поразмыслить.
-
Мы не знаем, сколько элементов в массиве.
-
Но мы можем узнать число элементов массива при помощи свойства length.
-
Зная число элементов массива, мы можем узнать порядковый номер/индекс предпоследнего элемента массива, если вычтем из числа его элементов число 2. (см. заметку индекс последнего элемента массива).
-
Затем, при помощи метода splice, можно удалить предпоследний элемент массива, и заменить его на тот, который нужен нам. Смотрите заметку о замене элементов в массиве.
Для примера берём массив с четырьмя фруктами из задания: var fruits = ["яблоко", "апельсин", "груша", "гранат"].
И в этом же примере проверим код для второго указанного в задании массива var fruits = ["банан", "мандарин", "манго"].
<script type="text/javascript">
var fruits = [" Яблоко", " Апельсин", " Груша", " Гранат"];
fruits.splice(fruits.length - 2, 1, " Ананас"); /* Узнаем индекс предпоследнего элемента массива, удаляем его и меняем на Ананас */
document.write("<p>" + fruits); // Выводим массив
document.write("<p>");
var fruits = [" Банан", " Мандарин", " Манго"];
fruits.splice(fruits.length - 2, 1, " Ананас");
document.write("<p>" + fruits);
</script>
Яблоко, Апельсин, Ананас, Гранат
Банан, Ананас, Манго
Отзывы и комментарии:
Добавил(а):
Баир
Дата:
2022-02-09
Не совсем понял, почему во втором примере удалился элемент Мандарин, если его индекс это 1? В методе splice мы указали, начиная со 2 индекса, удалить один элемент и заменить его элементом Ананас.
Добавил:
Admin
Дата:
2022-02-09
Не совсем понял, почему во втором примере удалился элемент Мандарин, если его индекс это 1? В методе splice мы указали, начиная со 2 индекса, удалить один элемент и заменить его элементом Ананас.
Нет. В методе splice указано, начиная с 1-го индекса. Число элементов массива 3 минус 2 = 1. Т.е. начиная с 1-го индекса удаляем один элемент - это и есть "Мандарин".
Добавил(а): Евгений
Дата: 2019-03-21
У меня в все получилось без "fruits.length" fruits.splice(- 2, 1, " Ананас");