Из двух исходных массивов одинакового размера A1, A2,…, An и B1, B2,…,Bn сформировать новый массив C1,C2,…,C2nтаким образом, чтобы:
A1 B1 A2 B2 … An Bn
C1 C2 C3 C4 … C2n -1 C2n
Решение.
Организуем цикл по номерам исходных массивов от 1 до N.
Для записи элементов массива А при нумерации массива С используем формулу нечетного числа [2*i –1], а для записи элементов массива В – формулу чётного числа [2*i]
Скрипт. n=prompt(“Введи количество элементов”,””); n=parseInt (n);
var a = new Array ();
var b = new Array ();
ввод данных исходных массивов;
var c = new Array ();
for (i=1; i<=n; i++) {
c[2*i -1]=a[i];
c[2*i]=b[i]; }
вывод данных исходных массивов и нового массива;
Слияние одномерных массивов разной длины методом concat
Из двух исходных массивов разной длины A1, A2,…, Ak и B1, B2,…,Bn сформировать новый массив C1,C2,…,Ck+n способом «дополнение», причём массив бóльшей длины устанавливается первым, а мéньшей длины – вторым.
Решение. Для слияния двух массивов в один применяется метод concat объекта Array. Массив а, указанный в качестве объекта при вызове метода concat, присоединяет к себе массив, заданный в виде параметра в методе concat.
Пример слияния двух массивов строковых переменных.
var a = new Array(“январь”, “февраль”, “март”);
var b = new Array(“апрель”, “май”, “июнь”, “июль”, “август”);
var с = new Array( );
c = a.concat (b);
document.write (c)
7. Выделение части одномерного массива методом slice
Методslice используется для получения части массива. При вызове метода указываются индексы начального и конечного элементов массива, причём последний элемент в массив не включается. Методы concat и slice поддерживаются в MIE.
Пример выделения летних месяцев из массива b в новый массив d:
var d = new Array();
d = b.slice (2, 5);document.write (c);
Контрольные вопросы
1. Что такое слияние массивов? Какие вы знаете способы слияния массивов?
2. Каков алгоритм слияния массивов способом “дополнение”?
3. Каков алгоритм слияния массивов способом “поэлементно”?
4. Назовите метод объекта Array для слияния массивов разной длины?
5. Как осуществить выделение части исходного массива в новый массив?
Выводы
· Слияние массивов – это формирование нового массива данных из двух или нескольких исходных массивов. Мы рассмотрели алгоритмы слияния двух массивов одинаковой длины способами «дополнение» и «поэлементно».
· Для слияния двух массивов в один применяется метод concat объекта Array. Массив, указанный в качестве параметра при вызове метода concat, присоединяется в конце массива, метод concat которого вызывается.
· Метод slice используется для получения части массива. При вызове метода указываются индексы начального и конечного элементов массива, причём последний элемент в массив не включается.
Практическая работа “Демонстрация задач слияния массивов”
Þ Продемонстрируйте работу программы по плану: анализ структуры программы – в Блокноте; тестирование – в броузере Internet Explorer