Масиви
var arr = ["Mercedes-Benz", "Tesla", "BMW"]
var c = [5, 3, 2, 4] // c[0] = 5
var numbers = ["Андрій", 2, 3.14, "A"];
var numbers = [1, 2, 3, 4];
console.log(...numbers); // 1 2 3 4
console.log(numbers); // [1, 2, 3, 4]
Двовимірний
var numbers = [[0, 2, 4], [1, 3, 5] ] // numbers[1][1] = 3
var m = 4, n = 4;
var mas = [];
for (var i = 0; i < m; i++)
{
mas[i] = [];
for (var j = 0; j < n; j++)
{
mas[i][j] = 0;
}
}
var people = [
["Олександр", 15, false],
["Дмитро", 20, true],
["Тарас", 30, true]
]
people[1] // Дмитро,20,true
people[1][0] // Дмитро
Тривимірний
var numbers = []
numbers[0] = []
numbers[0][0]=[]
numbers[0][0][0] = 3
Властивості
arr.length - кількість елементів
arr.constructor - якщо це масив: function Array() { [native code] }, або Number чи String
Додаємо нові властивості та методи в масив
Array.prototype.velykiBukvy = function() {
for (var i = 0; i < this.length; i++) { this[i] = this[i].toUpperCase() }
}
arr.velykiBukvy() // MERCEDES-BENZ, VOLVO, BMW
Рядок перетворити в масив
var arr = str.split('');
Масив перетворити в рядок
var str = arr.join('');
Методи
var arr = txt.split(",") - розбити текст на масив рядків
var arr = arr.concat(arr2) - об'єднати
arr.pop() - видаляє останній елемент
arr.push("7") - вставляє в кінець; повертає нову довжину
arr.push("8", "9")
arr.shift() - видаляє [0] елемент; повертає значення що видаляється
arr.unshift("1") - вставляє на початок; повертає нову довжину
arr = arr.slice(0, 3) - залишити [0], [1], [2]; (початок, кінець) останній елемент не включно
arr.join() - об'єднує елементи масиву в рядок: Mercedes-Benz, Tesla, BMW
arr.join(" * ") // 2 * 3 * 4 * 7
delete arr[1] - не видаляє комірку; затирає значення; краще pop() чи shift()
arr.valueOf() - повертає копію масиву без зміни оригіналу
var a = [2, 4, 6, 4]
a.indexOf(4) // 1
a.indexOf(4, 3) // 3
a.indexOf(10) // -1
a.lastIndexOf(2) // 0, пошук з права наліво
Math.max.apply(null, a) // 6
Math.min.apply(null, a) // 2
var b = ["c", "a", "b", "d"]
b.sort()
b.reverse()
var c = [20, 3, 100, 0]
c.sort()
c.sort(function(a, b){return a-b})
function(a, b){return a.year - b.year}
b = [4, 2, 3, 1] -> 1,2,3,4
a,b,c,d а,б,в,г
d,b,a,c
0,100,20,3
0,3,20,100
function compare( a, b ) { if ( a.name < b.name ){ return -1; } if ( a.name > b.name ){ return 1; } return 0; }
Array.isArray(arr) - true
arr.toString() - конвертувати в рядок
entries
var numbers = [1, 2, 3, 4, 5, 6, 7]
var f = numbers.entries()
for (x of f) {
console.log(x);
}
// [0, 1]
// [1, 2]
// [2, 3]
// [3, 4]
// [4, 5]
// [5, 6]
// [6, 7]
from - перетворити радок на масив
var myArr = Array.from("ABCD");
// [A,B,C,D]
fill - заповнити
var numbers = [1, 2, 3, 4, 5, 6, 7]
numbers.fill(7)
console.log(numbers); // [7, 7, 7, 7, 7, 7, 7]
keys - новий масив з цифрами
var users = ['user', 'user', 'user', 'admin']
for (x of n) {
console.log(x)
}
// 0 1 2 3
forEach - перебрати
item - поточний елемент
i - номер (не обов'язково)
arr - масив (не обов'язково)
filter - для фільтрації
item - поточний елемент
i - номер (не обов'язково)
arr - масив(не обов'язково)
var ages = [14, 16, 18, 20, 22]
function checkAdult(age) {
return age >= 18;
}
ages.filter(checkAdult) // 18,20,22
// якщо значення нема - пропускається
var numbers = [2, 5, 1, -1, 0, 6, 7, 8, 9, -4]
var even = numbers.filter(n => n % 2 == 0)
// 2, 0, 6, 8, -4
students.filter(student => student.subject == 'math' && student.score >= 70)
map - для трансформації
var numbers = [4, 9, 16, 25]
numbers.map(Math.sqrt) // 2,3,4,5
objArray = [
{ Name: 'Andriy', Price: 2},
{ Name: 'Zahar', Price: 4},
{ Name: 'Vasil', Price: 6} ]
var result = objArray.map(a => a.Price) // 2,4,6
Або:
var result = objArray.map(({ Price }) => Price)
var result = objArray.map(function(a) {return a.Price})
// якщо значення нема - пропускається
var persons = [
{firstname : "Andriy", lastname: "Reynolds"},
{firstname : "Zahar", lastname: "Frye"},
{firstname : "Vasil", lastname: "Cobb"}
]
function getFullName(item) {
var fullname = [item.firstname,item.lastname].join(" ")
return fullname;
}
persons.map(getFullName) // Andriy Reynolds,Zahar Frye,Vasil Cobb
every/some - перевірити наявність
item - поточний елемент
i - номер (не обов'язково)
arr - масив(не обов'язково)
reduce/reduceRight - пробігти та вирахувати значення
total - акумулює результат
currentValue - поточний елемент
currentIndex - індекс (не обов'язково)
arr - масив об'єктів (не обов'язково)
var numbers = [100, 50, 20];
function F(total, num) { // якщо значення нема - пропускається
return total - num; // total + Math.round(num);
}
numbers.reduce(F) // 30
var numbers = [5, 10, 15];
numbers.reduce( (sum, cur) => sum + cur ) // 30
reduceRight - те саме, але з права на ліво
find - знайти
item - поточний елемент
i - номер (не обов'язково)
arr - масив (не обов'язково)
var ages = [10, 15, 20, 25, 30]
function checkAdult(age) {
return age >= 18
}
ages.find(checkAdult) // 20 і undefined - якщо не знайдено
var ages = [10, 15, 20, 25, 30]
ages.find(element => element >= 18) // 20
var c = ["Citrus", "Comfy", "Rozetka"]
c.find(element => element.startsWith("R"))) // Rozetka
copyWithin - перекинути елементи не виходячи за межі
index - позиція для копіювання
start - початок (не обов'язково)
end - кінець (не обов'язково)
var numbers = [1, 2, 3, 4, 5, 6, 7]
numbers.copyWithin(2, 0)
// [1, 2, 1, 2, 3, 4, 5]
var numbers = [1, 2, 3, 4, 5, 6, 7]
numbers.copyWithin(3, 1, numbers.length)
// [1, 2, 3, 2, 3, 4, 5]
findIndex - найти індекс
item - поточний елемент
i - номер (не обов'язково)
arr - масив (не обов'язково)
var numbers = [12, 15, 17]
function checkAdult(age) {
return age >= 18;
}
numbers.findIndex(checkAdult)) // -1
// якщо значення нема - пропускається
includes - чи має масив
element - що шукаємо
start - початок (не обов'язково)
var numbers = [12, 15, 17]
numbers.includes(12) // true
var numbers = [12, 15, 17]
numbers.includes(12, 1) // false
splice
index - поточний елемент
howmany - видалити, 0 - нічого не видаляти (не обов'язково)
item1, item2, item3... - додати (не обов'язково)
var numbers = [1, 3, 5, 7]
numbers.splice(2, 0, 11, 12)
console.log(numbers)
// [1, 3, 11, 12, 5, 7]
var numbers = [1, 3, 5, 7]
numbers.splice(2, 1, 11, 12)
console.log(numbers)
// [1, 3, 11, 12, 7]