Робота з масивами в JavaScript

Матеріал з Вікі ЦДУ
Перейти до: навігація, пошук

Виділення унікальних значень Виділити унікальні значення можна за допомогою функції

  function arrayUnique( ar ) {
          var a = [];
          var l = ar.length;
          for(var i = 0; i < l; i++) {
                  for(var j = i+1; j < l; j++) {
                   if (ar[i] === ar[j])
                                  j = ++i;
                  }
                  a.push(ar[i]);
         }
         return a;
  }

також можна добавити функцію в клас Array:

  1. Array.prototype.unique =
  2.        function() {
  3.                var a = [];
  4.                var l = this.length;
  5.                for(var i = 0; i < l; i++) {
  6.                        for(var j = i+1; j < l; j++) {
  7.                                if (this[i] === this[j])
  8.                                        j = ++i;
  9.                        }
 10.                        a.push(this[i]);
 11.                }
 12.                return a;
 13.        };

Приклад:

  1. var aList = [1,3,2,1,1,5,3,2];
  2. alert( aList.unique() );
  3.
  4. // результат 1,5,3,2

Копіювання масива Щоб скопіювати масив, можна скористатися функцією concat () об'єкта Array. Вона призначена для об'єднання двох масивів, але якщо ми створимо порожній масив і смакота його з масивом, який потрібно скопіювати, то отримаємо копію масиву. Наприклад:

  1. var arrayToCopy = [ 1, 2, 3, 4, 5 ];
  2.
  3. var copyOfArray = [].concat(arrayToCopy);

Для зручності можна створити копію яка повертає копію масива:

  1. function copyArray( ar ){
  2.        return [].concat( ar );
  3. }

Або можна добавити функцію copy до класу Array:

  1. Array.prototype.copy =
  2.        function() {
  3.                return [].concat(this);
  4.        };
  5.
  6. // приклад використання
  7. var aList = [1,2,3,4,5];
  8.
  9. var newList = aList.copy();

Отримання максимального значення масива Максимальний элемент масива може бути отриманий за допомогою функції, добавлену до класу Array:

  1. Array.prototype.max = function(){
  2.        return Math.max.apply({},this)
  3. }

Приклад використання:

  1. var a = [1,2,3,5,4,3,1,34,32,2,12];
  2.
  3. alert(a.max());    // повертає 34