Методи для роботи з масивами в es5.

Методи для роботи з масивами в ES5.

Всім привіт! У цій статті давайте поговоримо про те, які нові методи для роботи з масивами з`явилися в ES5.

Замітка: всі розглянуті нами методи не змінюють вихідний масив, а повертають новий (тільки якщо ви не зміните масив в callback функції)

Тож почнемо. Створимо ось такий масив:

var array =["Some string","Another String","Third String","jаvascript","Lesson"] -

forEach ()

Першим розберемо метод forEach (). Першим параметром він приймає функцію, яка буде викликатися для кожного елемента в масиві з трьома параметрами: посилання на елемент масиву, індекс елемента і посилання на сам масив. А всередині функції ми можемо що-небудь зробити з цим елементом. Наприклад, давайте просто виведемо його в консоль

array.forEach(function(element, index, array){
console
.log(element) -// виводимо елемент в консоль
}) -

Або наведемо всі наші рядки до верхнього регістру

array.forEach(function(element, index, array){
array
[index]= element.toUpperCase() -
}) -

console
.log(array) -

Код вище змінює вихідний масив, тому що ми самі виконуємо присвоювання всередині callback функції.

Map ()




метод map () повертає новий масив, кожен елемент якого формується із значень, які повертаються з callback функції. Для прикладу зробимо те ж, що і в попередньому прикладі, але за допомогою map ()

console.log(array.map(function(e){return e.toUpperCase()})) -

В консолі ми побачимо, що результат той же. e - це елемент.

Filter ()

метод filter () дозволяє прибрати елементи з масиву по якомусь критерію. Він приймає функцію, яка повинна повернути справжнє або помилкове значення. І якщо для елемента функція повертає істину, то цей елемент додається в масив, який поверне метод фільтр, інакше ж елемент Не додає.

var filt = array.filter(function(e){
return indexOf(`O`)===-1-
}) -

console
.log(filt) -

Виконавши даний код, ви отримаєте тільки ті рядки, які НЕ містять букви "Про".

Every ()




метод every () повертає значення типу boolean: Якщо умова виконується - true, інакше - false.

console.log(array.every(function(e){return e.length gt;5})) -

Кодом вище ми перевіряємо, чи все у нас рядки мають довжину більше 5 символів? Даний метод поверне true. Якщо ми напишемо наша умова, наприклад, більше 15 символів, то отримаємо вже false.

Some ()

метод some () працює аналогічно методу every (), але він перевіряє чи є в масиві хоча б один елемент, для якого виконується умова. Наприклад, перевіримо, чи є в нашому масиві рядок, що містить букву z

console.log(array.some(function(e){return e.indexOf(`Z`)!==-1})) -// false, такого рядка немає
console
.log(array.some(function(e){return e.indexOf(`S`)!==-1})) -// true, такий рядок є

Reduce ()

метод reduce () дає нам не тільки посилання на поточний елемент, але і змінну з проміжним результатом, яка сформувалася в результаті виконання попередніх ітерацій. Не дуже зрозуміло?) Ну, тоді давайте розберемо на прикладі з числами. Для цього давайте створимо новий числовий масив

Відео: jаvascript-джедай # 25 - ES5 методи масивів

var numbers =[1,2,3,4,5] -

Тепер, власне, напишемо наш метод

var rd = numbers.reduce(function(a,b) {
return a + b-
}) -

console
.log(rd) -// 15

Перший аргумент - це проміжне значення, а другий - значення поточного елемента масиву. У нашому прикладі ми складаємо всі елементи масиву. Тобто беремо проміжне значення і додаємо до нього значення текующего елемента масиву. наприклад, 1 + 2 = 3 у нас в тимчасову змінну записалося значення 3, потім ми до нього додаємо значення наступного елемента 3 + 3 = 6, тепер значення тимчасової змінної стало рівним 6 і так далі.

Відео: Введення в C #. Урок 7. Робота з масивами в мові програмування C #

ReduceRight ()

метод reduceRight () аналогічний методу reduce (), за винятком того, що він проходить масив не зліва направо, а справа наліво. Для деяких операцій, як, наприклад, додавання множення, це не важливо, а для деяких, наприклад, віднімання, грає важливу роль.

var rd = numbers.reduce(function(a,b) {
return a - b-
}) -

var rd2 = numbers.reduceRight(function(a,b) {
return a - b-
}) -

console
.log(rd) -// -13
console
.log(rd2) -// -5

IndexOf () і lastIndexOf ()

методи indexOf () і lastIndexOf () працюють з масивами точно так же, як і з рядками.

var numb =[1,2,3,4,5,6,7,3,9] -
console
.log(numb.indexOf(3)) -// індекс першого входження - 2
console
.log(numb.lastIndexOf(3)) -// індекс останнього входження - 7
console
.log(numb.indexOf(17)) -// -1 тому число не знайдено
console
.log(numb.lastIndexOf(17)) -// -1 тому число не знайдено

На цьому все. Сподіваюся, ви дізналися щось нове і корисне для себе, а якщо ви хочете дізнатися ще більше і стати гуру jаvascript, то курс jаvascript, jQuery і Ajax з Нулі до Гуру допоможе вам в цьому. Успіхів!

Поділися в соціальних мережах:

Схожі
Nodejs. Оброблювач подій.Nodejs. Оброблювач подій.
Створення динамічної функції на phpСтворення динамічної функції на php
Сортування двовимірного масиву на phpСортування двовимірного масиву на php
Як створити асоціативний масив в jаvascriptЯк створити асоціативний масив в jаvascript
Цикли в phpЦикли в php
Nodejs. Модулі.Nodejs. Модулі.
Функція array_pad в php.Функція array_pad в php.
Кросбраузерності події.Кросбраузерності події.
Об`єкт object в jаvascriptОб`єкт object в jаvascript
Рекурсія в phpРекурсія в php
» » Методи для роботи з масивами в es5.