Translate

Поиск по этому блогу

четверг, 31 января 2019 г.

JS ES6 Arrays.

Массивы (Arrays) — лаконичным способом хранения списка элементов под одним именем.


Больше материалов по JavaScript ES6 в этом блоге.

Массивы используются для хранения коллекций значений в последовательном порядке. Вы можете назначать массивы переменным так же, как вы можете назначать строки или любой другой тип данных. Массивы полезны для хранения коллекций элементов, где важен порядок.


let names = ["Steve", "Bob", "Sam", "Erick"]

names[0] //returns "Steve"
names[2] //returns "Sam"



Массивы начинают считать с 0.
В приведенном выше примере "Steve" является первым элементом в массиве имен. Когда мы вызываем names[0], мы просим вернуть элемент в позиции 0 массива. Вот почему names[0] возвращает "Steve", а names[2] возвращает "Sam".

Определение массивов - Defining Arrays.

Есть несколько способов «создать» или инициализировать массивы в JavaScript.
Самый простой способ - инициализировать массив в определении переменной.
Например:


let scores = [87,43,88,99]



Массивы также могут быть созданы с помощью объекта Array:


let scores = new Array(87, 43, 88, 99)



Доступ к элементам массива - Accessing Array Elements

Доступ к элементам в массиве прост.
Вы просто предоставляете имя массива с индексом, который хотите вернуть:


let scores = [87,43,88,99]

scores[0] // returns 87
scores[1] // returns 43
scores[2] // returns 88



Перебор массива циклом.

Чтобы перебрать каждый элемент массива, вы можете использовать встроенный метод forEach ().


let scores = [87,43,88,99]

scores.forEach((x) => {
  console.log(x)
})

//logs 87, 43, 88, 99



Другие методы массива.

Метод forEach () является одним из многих поддерживаемых методов для массивов JavaScript. Ниже приведен список других методов с краткими примерами для каждого:

concat()

Метод concat () объединяет массивы.


let scores = [87, 43, 88, 99]
let moreScores = [100,33,78,44]

scores.concat(moreScores)

//returns [87, 43, 88, 99, 100, 33, 78, 44]



every()

Метод every () возвращает true, если каждый элемент проходит заданное условие:


let scores = [87, 43, 88, 99]

scores.every((x) => { return x > 10 })

//returns true since every element is greater than 10



filter()

Метод filter () возвращает новый массив с каждым элементом, который пройдет через функцию фильтра.


let scores = [87, 43, 88, 99]

scores.filter((x) => { return x > 80 })

//returns [87, 88, 99]



indexOf()

Этот метод возвращает первый элемент массива, который соответствует заданному значению. Если нет элементов соответствующих значению, возвращается -1:


let scores = [87, 43, 88, 99]

scores.indexOf(88) //returns 2
scores.indexOf(103) // returns -1



join()

Метод join () объединяет все элементы массива в строку.


let scores = [87, 43, 88, 99]

scores.join() //returns "87,43,88,99"
scores.join("|") //returns "87|43|88|99"



lastIndexOf()

Аналогичен indexOf, но возвращает индекс последнего элемента, который соответствует предоставленному значению. Возвращает -1, если совпадений нет:


let scores = [87, 43, 88, 99, 88]

scores.lastIndexOf(88) //returns 4
scores.lastIndexOf(11) //returns -1



map()

Функция map () применяет блок кода или функцию к каждому элементу в массиве и возвращает новый массив с результатами каждой операции.


let scores = [87, 43, 88, 99]

scores.map((x) => {return x + 10})

//returns [97, 53, 98, 109]



pop()

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


let scores = [87, 43, 88, 99]

scores.pop() //returns 99

//scores now equals [87, 43, 88]



push()

Метод push () добавляет новый элемент в массив и возвращает новую длину массива.


let scores = [87, 43, 88, 99]

scores.push(44) //returns 5

//scores now equals [87, 43, 88, 99, 44]



reduce()

Метод reduce () возвращает агрегированный результат функции, примененной к массиву


let count = [1,2,3,4]

count.reduce((a,b) => {return a + b})

//returns 10



reduceRight()

То же, что и reduce (), но работает справа налево:


let count = [1,2,3,4]

count.reduceRight((a,b) => {return a - b})

//returns -2



reverse()

Повернет в другую сторону элементы в массиве:


let scores = [87, 43, 88, 99]

scores.reverse()

//returns [99, 88, 43, 87]



shift()

Метод shift () похож на pop (), но действует на первый элемент массива, а не на последний.


let scores = [87, 43, 88, 99]

scores.shift() //returns 87

//scores now equals [43, 88, 99]



slice()

Возвращает подмассив на основе начальной и конечной позиции:


let scores = [87, 43, 88 99]

scores.slice(1,3)

//returns [43,88]



some()

Метод some () возвращает true, если хотя бы один элемент удовлетворяет данному условию


let scores = [87, 43, 88, 99]

scores.some((x) => {return x < 50}) //returns true
scores.some((x) => {return x < 40}) //returns false



sort()

Сортирует элементы массива:


let scores = [87, 43, 88, 99]

scores.sort() //returns [43, 87, 88, 99]
scores.sort((a,b) => {return b - a}) // returns [99, 88, 87, 43]



splice()

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


let scores = [87, 43, 88, 99]

scores.splice(2, 0, 95) //returns []

//scores now equals [87, 43, 95, 88, 99]

let counts = [1, 2, 3, 4, 5]

counts.splice(1, 3) //returns [2,3,4]

//scores now equals [1,5]



Обратите внимание, что если мы опускаем третий аргумент, splice () просто удаляет элементы из массива. Также важно признать, что splice () возвращает удаленные элементы и изменяет существующий массив.

toString()

Просто преобразует массив в строку.


let scores = [87, 43, 95, 88, 99]

scores.toString()

//returns '87,43,95,88,99'



unshift()

Добавляет элементы в начало массива и возвращает новую длину массива.


let scores = [87, 43, 95, 88, 99]

scores.unshift(50,70) //returns 7

//scores now equals [50, 70, 87, 43, 95, 88, 99]



find()

Метод find () возвращает первый элемент, который соответствует указанному условию.


let scores = [87, 43, 95, 88, 99]

scores.find((x) => {return x > 90})

//returns 95



findIndex()

То же, что find (), но возвращает первый индекс вместо первого значения, которое удовлетворяет условию.


let scores = [87, 43, 95, 88, 99]

scores.findIndex((x) => {return x > 90})

//returns 2



entries()

Функция entries() возвращает итератор, который можно использовать для циклического перебора ключей и значений массива.


let scores = [87, 43, 95, 88, 99]

var entries = scores.entries()

console.log(entries.next().value) //returns [0, 87]
console.log(entries.next().value) //returns [1, 43]



from()

Метод from () создает новый массив из объекта, похожего на массив.


let nameArray = Array.from('Sam')

console.log(nameArray)

//logs ['S', 'a', 'm']



keys()

Метод keys () возвращает новый объект итератора, который содержит ключи для каждого индекса в массиве.


let scores = [87, 43, 95, 88, 99]
let iterator = scores.keys();

console.log(iterator.next())

//logs {value: 0, done: false}



Заключение:

Массивы - это мощные типы данных в JavaScript. Используйте массивы, если вы хотите отслеживать коллекцию значений и порядок их расположения.

Вы можете скачать готовую шпаргалку на моей странице на GitHub -> /arrays-js-es6-abc, или добавить страницу в закладки.                                                                                                                                                              

Комментариев нет:

Отправить комментарий



Хотите освоить самые современные методы написания React приложений? Надоели простые проекты? Нужны курсы, книги, руководства, индивидуальные занятия по React и не только? Хотите стать разработчиком полного цикла, освоить стек MERN, или вы только начинаете свой путь в программировании, и не знаете с чего начать, то пишите через форму связи, подписывайтесь на мой канал в Телеге, вступайте в группу на Facebook.Пишите мне - kolesnikovy70 почта gmail.com