Шаг 27.
Основы JavaScript.
Методы объекта Array

    На этом шаге мы рассмотрим методы объекта Array.

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

  1. Метод concat() - объединяет два массива в третий массив, который является результатом работы этого метода. Исходные массивы не изменяются.
    Пример. Пусть имеются два массива, объединяя которые получаем третий массив:
        A = new Array (1,2,3); //Первый массив
        B = new Array ("первый", "второй"); //Второй массив
        //Третий массив, результат объединения массивов A и B
        C = A.concat(B); 
    

  2. Метод join(<разделитель>) - создает строку из элементов массива с указанным разделителем между ними. Возвращает строку символов (возможно, пустую).
    Пример. Пусть имеется массив:
        A = new Array (1,"первый",2,"второй");
    
    и выполняется такая конструкция:
        S = A.join(",");
    
    В результате строка S будет иметь следующий вид:
        "1,первый,2,второй"
    

  3. Метод pop() - удаляет последний элемент массива и возвращает его значение.

  4. Метод shift() - удаляет первый элемент массива и возвращает его значение.

  5. Метод push(<значение>) - добавляет указанное значение в конец массива и возвращает новую длину массива.

  6. Метод unshift(<значение>) - добавляет указанное значение в начало массива и возвращает новую длину массива.

  7. Метод reverse() - изменяет порядок следования элементов массива на противоположный. Исходный массив при этом изменяется.
    Пример. Пусть имеется массив:
        A = new Array (1,2,3);
    
    Тогда после выполнения конструкции:
        A.reverse();
    
    массив A будет следующим: 3 2 1.

  8. Метод slice(<индекс1>, <индекс2>) - создает массив из элементов исходного массива с индексами указанного диапазона. Результатом работы метода является новый массив. Второй параметр (конечный индекс) не является обязательным. Если он не указан, то создаваемый массив содержит элементы исходного массива начиная с индекса индекс1 и до конца. В противном случае создаваемый массив содержит элементы исходного массива начиная с индекса индекс1 и до индекса индекс2, за исключением последнего. При этом исходный массив остается без изменений.
    Пример. Пусть имеется массив:
        A = new Array (1,"первый",2,"второй");
    
    Тогда при выполнении следующих конструкций будут получены такие результаты:
        B = A.slice(1,3); //Массив B: "первый" 2
        C = A.slice(2); //Массив C: 2  "второй"
    

  9. Метод sort(<функция сортировки>) - сортирует (упорядочивает) элементы массива, пользуясь функцией сравнения. Исходный массив изменяется. Если функция сортировки не указана, то сортировка производится на основе сравнения ASCII-кодов символов значений. Это удобно для сравнения символьных строк, но не совсем подходит для сравнения чисел. Так, число 425 при сортировке считается меньшим, чем 78, поскольку сначала сравниваются первые символы и только в случае их равенства сравниваются следующие, и т. д. Таким образом, метод sort() без параметра подходит для простой сортировки массива со строковыми элементами.

        Можно создать свою собственную функцию для сравнения элементов массива, с помощью которой метод sort() отсортирует весь массив. Имя этой функции (без кавычек и круглых скобок) передается методу в качестве параметра. При работе метода функции передаются два элемента массива, а ее код возвращает методу значение, указывающее, какой из элементов должен следовать за другим. Например, сравниваются два элемента, х и у. Тогда в зависимости от числового значения (отрицательного, 0 или положительного), возвращаемого функцией сравнения, методом sort() принимается одно из трех возможных решений:

    • значение меньше 0 - y следует за x;
    • значение равно 0 - порядок следования не изменяется;
    • значение больше 0 - x следует за y.

        Проиллюстрируем это следующим примером. Пусть имеется следующий массив:

        A = new Array (1, 23, 2, 47, 8);
    
    Функция сортировки имеет следующий вид:
    function f(x,y)
    {
       return x-y;
    }
    
    Тогда конструкция:
        A.sort(f);
    
    отсортирует массив по возрастанию.

  10. Метод splice(<индекс>, <количество>, <элемент1>, <элемент2>, ..., <элементN>) - удаляет из массива несколько элементов и возвращает массив из удаленных элементов или заменяет значения элементов. Результатом работы этого метода является новый массив, причем исходный массив также изменяется. Первые два параметра обязательны, а следующие - нет. Первый параметр является индексом первого удаляемого элемента, а второй - количеством удаляемых элементов. Например, пусть имеется массив:
        A = new Array (1, 23, 2, 47, 8);
    
    После выполнения конструкции:
        B = A.splice(1,3);
    
    массив B будет содержать значения: 23, 2, 47, а массив A - значения 1 и 8 (не забывайте, что нумерация элементов массива начинается с нуля!).

        Метод splice() позволяет также заменить значения элементов исходного массива, если указаны третий и, возможно, последующие параметры. Эти параметры представляют значения, которыми следует заменить исходные значения элементов массива. При таком использовании метода splice() важен первый параметр (индекс), а второй (количество) может быть равным нулю. В любом случае, если количество элементов замены больше значения второго параметра, то часть элементов исходного массива будет заменена, а часть элементов будет просто вставлена в него. При этом метод splice() возвращает другой массив, состоящий из элементов исходного, индексы которых соответствуют первому и второму параметрам. Но это справедливо, если второй параметр не равен 0.


    Приведем несколько примеров. Пусть массив A состоит из следующих элементов:
        A = new Array (1, 23, 2, 47, 8);
    
    Образуем массив B следующим образом:
        B = A.splice(1,3,4,"первый","второй");
    
    Тогда массив B будет иметь следующие элементы: 23, 2 и 47, а массив A - значения: 1, 4, "первый", "второй", 8.

        Создадим массив C следующим образом:

        С = A.splice(1,0,4,"первый","второй",5,25);
    

        В результате массив C будет пустым (второй параметр равен нулю), а массив A будет содержать следующие элементы: 1, 4, "первый", "второй", 5, 25, 23, 2, 47, 8.


Создайте скрипты, приведенные в этом шаге, и проверьте их работу в браузере.


    Со следующего шага мы начнем знакомиться с объектом Math.




Предыдущий шаг Содержание Следующий шаг