Відмінності між версіями «Робота з масивами в JavaScript»
Рядок 14: | Рядок 14: | ||
} | } | ||
також можна добавити функцію в клас Array: | також можна добавити функцію в клас Array: | ||
− | + | Array.prototype.unique = | |
− | + | function() { | |
− | + | var a = []; | |
− | + | var l = this.length; | |
− | + | for(var i = 0; i < l; i++) { | |
− | + | for(var j = i+1; j < l; j++) { | |
− | + | if (this[i] === this[j]) | |
− | + | j = ++i; | |
− | + | } | |
− | + | a.push(this[i]); | |
− | + | } | |
− | + | return a; | |
− | + | }; | |
Приклад: | Приклад: | ||
− | + | var aList = [1,3,2,1,1,5,3,2]; | |
− | + | alert( aList.unique() ); | |
− | + | ||
− | + | // результат 1,5,3,2 | |
'''Копіювання масива''' | '''Копіювання масива''' | ||
Щоб скопіювати масив, можна скористатися функцією concat () об'єкта Array. Вона призначена для об'єднання двох масивів, але якщо ми створимо порожній масив і смакота його з масивом, який потрібно скопіювати, то отримаємо копію масиву. | Щоб скопіювати масив, можна скористатися функцією concat () об'єкта Array. Вона призначена для об'єднання двох масивів, але якщо ми створимо порожній масив і смакота його з масивом, який потрібно скопіювати, то отримаємо копію масиву. | ||
Наприклад: | Наприклад: | ||
− | + | var arrayToCopy = [ 1, 2, 3, 4, 5 ]; | |
− | + | ||
− | + | var copyOfArray = [].concat(arrayToCopy); | |
Для зручності можна створити копію яка повертає копію масива: | Для зручності можна створити копію яка повертає копію масива: | ||
− | + | function copyArray( ar ){ | |
− | + | return [].concat( ar ); | |
− | + | } | |
Або можна добавити функцію copy до класу Array: | Або можна добавити функцію copy до класу Array: | ||
− | + | Array.prototype.copy = | |
− | + | function() { | |
− | + | return [].concat(this); | |
− | + | }; | |
− | + | ||
− | + | // приклад використання | |
− | + | var aList = [1,2,3,4,5]; | |
− | + | ||
− | + | var newList = aList.copy(); | |
'''Отримання максимального значення масива''' | '''Отримання максимального значення масива''' | ||
Максимальний элемент масива може бути отриманий за допомогою функції, добавлену до класу Array: | Максимальний элемент масива може бути отриманий за допомогою функції, добавлену до класу Array: | ||
− | + | Array.prototype.max = function(){ | |
− | + | return Math.max.apply({},this) | |
− | + | } | |
Приклад використання: | Приклад використання: | ||
− | + | var a = [1,2,3,5,4,3,1,34,32,2,12]; | |
− | + | ||
− | + | alert(a.max()); // повертає 34 | |
'''Отримання мінімального елемента масива''' | '''Отримання мінімального елемента масива''' | ||
Мінімальний элемент масива може бути отриманий за допомогою наступної функції, добавленої до класу Array: | Мінімальний элемент масива може бути отриманий за допомогою наступної функції, добавленої до класу Array: | ||
− | + | Array.prototype.min = function(){ | |
− | + | return Math.min.apply({},this) | |
− | + | } | |
Приклад використання: | Приклад використання: | ||
− | + | var a = [1,2,3,5,4,3,1,34,32,2,12]; | |
− | + | ||
− | + | alert(a.min()); // повертає 1 |
Версія за 08:05, 21 травня 2010
Виділення унікальних значень Виділити унікальні значення можна за допомогою функції
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:
Array.prototype.unique = function() { var a = []; var l = this.length; for(var i = 0; i < l; i++) { for(var j = i+1; j < l; j++) { if (this[i] === this[j]) j = ++i; } a.push(this[i]); } return a; };
Приклад:
var aList = [1,3,2,1,1,5,3,2]; alert( aList.unique() );
// результат 1,5,3,2
Копіювання масива Щоб скопіювати масив, можна скористатися функцією concat () об'єкта Array. Вона призначена для об'єднання двох масивів, але якщо ми створимо порожній масив і смакота його з масивом, який потрібно скопіювати, то отримаємо копію масиву. Наприклад:
var arrayToCopy = [ 1, 2, 3, 4, 5 ];
var copyOfArray = [].concat(arrayToCopy);
Для зручності можна створити копію яка повертає копію масива:
function copyArray( ar ){ return [].concat( ar ); }
Або можна добавити функцію copy до класу Array:
Array.prototype.copy = function() { return [].concat(this); };
// приклад використання var aList = [1,2,3,4,5];
var newList = aList.copy();
Отримання максимального значення масива Максимальний элемент масива може бути отриманий за допомогою функції, добавлену до класу Array:
Array.prototype.max = function(){ return Math.max.apply({},this) }
Приклад використання:
var a = [1,2,3,5,4,3,1,34,32,2,12];
alert(a.max()); // повертає 34
Отримання мінімального елемента масива Мінімальний элемент масива може бути отриманий за допомогою наступної функції, добавленої до класу Array:
Array.prototype.min = function(){ return Math.min.apply({},this) }
Приклад використання:
var a = [1,2,3,5,4,3,1,34,32,2,12];
alert(a.min()); // повертає 1