Масиви

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 - перебрати 

filter - для фільтрації

 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 - перевірити наявність

reduce/reduceRight - пробігти та вирахувати значення

 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 - знайти

 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 - перекинути елементи не виходячи за межі

 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 - найти індекс

 var numbers = [12, 15, 17]

 function checkAdult(age) {

    return age >= 18;

 }

 

 numbers.findIndex(checkAdult))   // -1

 // якщо значення нема - пропускається

includes - чи має масив

 var numbers = [12, 15, 17]

 numbers.includes(12)  // true

 var numbers = [12, 15, 17]

 numbers.includes(12, 1)  // false

splice

  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]