Методи, що отримують дані з масиву не змінюючи сам масив: indexOf(), lastIndexOf(), find(), findIndex(), slice(), concat(), toString(), join()
Зміст
- 1. Методи indexOf() та lastIndexOf(). Повернути позиції першого та останнього входження елементу в масиві
- 2. Метод find(). Пошук елементу в масиві, що відповідає заданому критерію
- 3. Метод findIndex(). Отримати індекс елементу масиву, який відповідає заданому критерію
- 4. Метод slice(). Отримати підмасив з заданого масиву
- 5. Метод concat(). Отримати новий масив, що доповнений іншими елементами та масивами
- 6. Метод toString(). Перетворити масив в рядок
- 7. Метод join(). Об’єднати всі елементи масиву в один рядок
- Споріднені теми
Пошук на інших ресурсах:
1. Методи indexOf() та lastIndexOf(). Повернути позиції першого та останнього входження елементу в масиві
Методи indexOf() та lastIndexOf() дозволяють повернути позиції першого та останнього входжень заданого елементу в масиві. Використання методів виглядає приблизно так
firstPos = array.indexOf(item) lastPos = array.lastIndexOf(item)
тут
- array – масив, в якому здійснюється пошук;
- firstPos – позиція першого входження елементу item в масиві;
- lastPos – позиція останнього входження елементу item в масиві.
Якщо елементу item немає в масиві array, то функції повертають -1.
Приклад.
// Функції indexOf() та lastIndexOf() // Отримати позицію першого та останнього входження // заданого елементу в масиві. // 1. Обробка масиву цілих чисел // 1.1. Оголосити масив чисел та вивести його var A = new Array(2, 8, 3, 5, 4, 1, 2, 3, 4, 4, 5, 2) console.log("A:") console.log(A) // 1.2. Отримати позиції першого та останнього входження числа 4 var first = A.indexOf(4) var last = A.lastIndexOf(4) console.log("A.indexOf(4) = " + first) console.log("A.lastIndexOf(4) = " + last) // 1.3. Отримати позиції неіснуючого елементу 9 first = A.indexOf(9) // first = -1 last = A.lastIndexOf(11) // last = -1 console.log("A.indexOf(9) = " + first) console.log("A.lastIndexOf(11) = " + last) // 2. Обробка масиву рядків. Пошук рядка // 2.1. Оголосити масив рядків та вивести його var S = ["abc", "def", "jklm", "ghi", "", "def", "jprst"] console.log("--------------------------------") console.log("S:") console.log(S) // 2.2. Визначити позицію першого та // останнього входження рядка "jprst" в масиві S first = S.indexOf("jprst") last = S.lastIndexOf("jprst") console.log("A.indexOf(\"jprst\") = " + first) console.log("A.lastIndexOf(\"jprst\") = " + last) console.log("Ok");
Результат
A: [ 2, 8, 3, 5, 4, 1, 2, 3, 4, 4, 5, 2 ] A.indexOf(4) = 4 A.lastIndexOf(4) = 9 A.indexOf(9) = -1 A.lastIndexOf(11) = -1 -------------------------------- S: [ 'abc', 'def', 'jklm', 'ghi', '', 'def', 'jprst' ] A.indexOf("jprst") = 6 A.lastIndexOf("jprst") = 6 Ok
⇑
2. Метод find(). Пошук елементу в масиві, що відповідає заданому критерію
Метод find() повертає елемент масиву, який відповідає заданому критерію. Критерій формується у спеціальній функції або лямбда-функцією.
Використання методу find() у програмі може бути приблизно таким
item = array.find(Func)
тут
- array – вихідний масив;
- item – шуканий елемент з масиву array, для якого функція Func() повертає true. Якщо елементу item немає в масиві, то повертається undefined;
- Func – ім’я функції або лямда-виразу (лямда-функції), яка повертає true або false. Ця функція (вираз) задає код, за яким визначається чи задовільняє елемент масиву потрібному критерію.
Оголошення функції виглядає приблизно так
function Func(value, index, array) { // Виконання дій які повертають true або false // ... }
тут
- value – поточне значення масиву array, яке розглядається;
- index – позиція поточного значення масиву array. Таким чином array[index]==value;
- array – ім’я масиву, який розглядається.
Якщо для визначення критерію достатньо одного значення value, то параметри index та array у функції Func можна опустити
function Func(value) { // Виконання дій які повертають true або false // ... }
Приклад.
// Метод find(). Отримати елемент масиву, // який першим відповідає заданому критерію. // Задача. Знайти елемент, який знаходиться в межах [40; 50]. // 1. Пошук в масиві чисел // 1.1. Вихідний масив чисел var A = new Array( 10, 21, 32, 131, 44, 25, 6, 17 ) // 1.2. Функція, яка визначає чи елемент відповідає заданому критерію, // чи значення елементу знаходиться в діапазоні [40; 50] function Range_40_50(value, index, array) { if ((array[index] >= 40) && (array[index] <= 50)) return true else return false } // 1.3. Знайти елемент var item = A.find(Range_40_50) // item = 44 // 1.4. Вивести елемент console.log("item = " + item) // 2. Пошук в масиві рядків. Знайти перший рядок, який починається на букву 'c' // 2.1. Вихідний масив var S = ["abc", "ac", "bcd", "cde", "bda", "bd", "cbcd"] // 2.2. Оголосити лямбда-функцію при виклику функції find(). // Лямбда-функція визначає, чи перший символ в рядку 'c' var str = S.find((value) => value[0] == 'c'); // 2.3. Вивести результат console.log("str = " + str) // str = cde
Результат
item = 44 str = cde
⇑
3. Метод findIndex(). Отримати індекс елементу масиву, який відповідає заданому критерію
Метод findIndex() повертає позицію (індекс) елементу, який задовільняє заданому критерію. Критерій визначається заданою функцією або лямбда-функцією. Метод є подібний до методу find() тільки замість самого елементу повертається його позиція.
Використання методу в програмі наступне
index = array.findIndex(Func)
тут
- array – масив, в якому здійснюється пошук елементу;
- index – шукана позиція;
- Func – функція (лямбда-функція), яка повертає значення true або false. Саме вираз, що формує значення true, визначає критерій відбору потрібного елементу.
У свою чергу, функція Func() оголошується одним з двох способів в залежності від необхідності використання тих чи інших параметрів
function Func(value, index, obj) { // Виконувані дії // ... }
або
function Func(value) { // Виконувані дії // ... }
тут
- obj – масив, що обробляється;
- value – значення елементу з масиву obj. Для цього значення справедлива рівність value==obj[index];
- index – позиція елементу в масиві obj.
Також замість функції можливе використання лямбда-функції на кшталт
(value, index, obj) => expression
або
(value) => expression
тут
- expression – умовний вираз, який повертає true або false.
Приклад.
// Метод findIndex(). // Знайти елемент, що відповідає заданому критерію // 1. Задача. Знайти перший від'ємний елемент масиву. // 1.1. Вихідний масив чисел var A1 = new Array( 10, 21, -12, 33, -41, 55, 60, 87 ) // 1.2. Оголосити функцію, яка повертає true, якщо // value<0 function Is_Negative(value, index, obj) { return obj[index] < 0 } // 1.3. Виклик findIndex() - знайти індекс від'ємного елементу var index = A1.findIndex(Is_Negative) // 1.4. Вивести результат console.log("A1 = " + A1) console.log("index = " + index) // 2. Задача. Знайти індекс першого рядка, довжина // якого більше 3 символів. // 2.1. Оголосити масив рядків var B1 = ["ab", "abc", "abcd", "", "jklmn", ""] // 2.2. Сформувати лямбда-функцію, яка повертає true, // якщо довжина рядка 4 і більше символів var expr = (value) => value.length >= 4 // 2.3. Викликати метод findIndex() index = B1.findIndex(expr) // 2.4. Вивести результат console.log("B1 = " + B1) console.log("index = " + index)
Результат
A1 = 10,21,-12,33,-41,55,60,87 index = 2 B1 = ab,abc,abcd,,jklmn, index = 2
⇑
4. Метод slice(). Отримати підмасив з заданого масиву
З допомогою методу slice() можна отримати підмасив з заданого масиву. У цьому випадку межі підмасиву можуть встановлюватись різними способами. Відповідно, метод slice() має 3 випадки використання
array2 = array1.slice() array2 = array1.slice(a) array2 = array1.slice(a, b)
тут
- array1 – вихідний масив;
- array2 – результуючий підмасив, який отримується з вихідного масиву array1 та значень a, b;
- a, b – відповідно нижній та верхній індекси діапазону підмасиву. Верхній індекс b вказує позицію елементу, який слідує за останнім елементом отримуваного підмасиву.
Перша реалізація методу slice() без параметрів повертає увесь вихідний масив. Друга реалізація методу з одним параметром повертає підмасив, який починається зі значення цього параметру і до кінця масиву. Третя реалізація повертає підмасив, що визначений діапазоном індексів [a; b] вихідного масиву.
Приклад.
// Метод slice(). Отримати підмасив з заданого масиву // 1. Оголосити масив чисел var A1 = new Array(0, 1, 2, 3, 4, 5, 6, 7) // 2. Отримати підмасив var A2 = A1.slice(2, 4) // A2 = [ 2,3 ] var A3 = A1.slice() // A3 = [ 0,1,2,3,4,5,6,7 ] var A4 = A1.slice(5) // A4 = [ 5,6,7 ] // 3. Вивести масиви A2 та A3 console.log("A2 => " + A2) console.log("A3 => " + A3) console.log("A4 => " + A4)
Результат
A2 => 2,3 A3 => 0,1,2,3,4,5,6,7 A4 => 5,6,7
⇑
5. Метод concat(). Отримати новий масив, що доповнений іншими елементами та масивами
Метод concat() дозволяє отримати новий масив, який формується додаванням до поточного масиву інших масивів чи елементів.
У спрощеному вигляді застосування методу має вигляд:
Res = A.concat(item1, item2, ..., itemN)
де
- item1, item2, itemN – окремі елементи або масиви;
- A – масив, до якого додаються елементи (масиви) item1, item2, itemN;
- Res – результуючий масив, який є додаванням масиву A1 та масивів (елементів) item1, item2, itemN.
Нижче наведено приклад використання методу concat().
// Методи роботи з масивами // Функція concat(). // Конкатенує масиви // 1. Для цілих чисел // 1.1. Оголосити 2 масиви var A1 = new Array(2, 8, 3, 5, 4, 1) var A2 = new Array(3, 11, 7, 6) // 1.2. Додати до масиву A1 масив A2 та масив [10, 20] A1 = A1.concat(A2, [10, 20]) // 1.3. Вивести масив A1 document.write("A1:<br>") for (var i = 0; i < A1.length; i++) document.write(A1[i] + " ") document.write("<br>") // 2. Для об'єктів різних типів // 2.1. Створити 2 об'єкти A1 = [ "abc", true, 23, 0.005 ] A2 = [ "Hello", '+' ] // 2.2. Додати до масиву A2 один масив та один елемент A2 = A2.concat(A1, 777) // 2.3. Вивести масив A2 document.write("A2:<br>") for (var i = 0; i < A2.length; i++) document.write(A2[i] + " ") document.write("<br>")
Результат
A1: 2 8 3 5 4 1 3 11 7 6 10 20 A2: Hello + abc true 23 0.005 777
⇑
6. Метод toString(). Перетворити масив в рядок
З допомогою методу toString() можна перетворити масив у рядок. Використання методу наступне
str = array.toString()
де
- array – масив елементів;
- str – результуючий рядок.
Приклад.
// Метод toString(). Перетворити масив у рядок // 1. Масив чисел var A = new Array( 0, 1, 2, 3, 4, 5, 6, 7 ) var str = A.toString() console.log(str) // str = "0,1,2,3,4,5,6,7" // 2. Масив різнотипних елементів var B = [true, 2.88, '+', "abcd"] str = B.toString() console.log(str)
Результат
0,1,2,3,4,5,6,7 true,2.88,+,abcd
⇑
7. Метод join(). Об’єднати всі елементи масиву в один рядок
Метод join() повертає рядок символів, який містить усі елементи масиву, які розділені заданим символом або рядком. Символ чи рядок, що розділяють елементи, вказуються аргументом методу join().
У програмі метод join() використовується одним з двох способів. Перший спосіб передбачає використання аргументу
str = array.join(separator)
тут
- array – масив, елементи якого формуються в рядок str;
- str – результуючий рядок;
- separator – символ-розділювач або рядок-розділювач.
Другий спосіб передбачає виклик методу без параметрів
str = array.join()
В цьому випадку розділювачем встановлюється символ ‘ , ‘ (кома).
Приклад.
// Функція join() // Об'єднати в рядок усі елементи масиву з заданим розділювачем. // 1. Обробка масиву цілих чисел // 1.1. Оголосити масив чисел та вивести його var A = new Array(2, 8, 3, 5, 4, 1, 2, 3, 4, 4, 5, 2) console.log("A:") console.log(A) // 1.2. Викликати метод join() з параметром var str = A.join('+') console.log(str) // 1.3. Викликати метод join() без параметру str = A.join() // A.join(',') - за замовчуванням символ ',' (кома) console.log(str) // 2. Обробка масиву дійсних чисел // 2.1. Оголосити масив чисел та вивести його var B = [2.8, 3.5, -1.4, -0.9905] console.log("------------------------") console.log("B:") console.log(B) // 2.2. Викликати метод join() str = B.join(" ") // задається рядок з 2 пробілами console.log(str) console.log("Ok");
Результат
A: [ 2, 8, 3, 5, 4, 1, 2, 3, 4, 4, 5, 2 ] 2+8+3+5+4+1+2+3+4+4+5+2 2,8,3,5,4,1,2,3,4,4,5,2 ------------------------ B: [ 2.8, 3.5, -1.4, -0.9905 ] 2.8 3.5 -1.4 -0.9905 Ok
⇑
Споріднені теми
- Методи для роботи з масивами. Перелік. Метод at(). Методи, що визначають інформацію про масив в цілому: every(), some(), includes()
- Методи, що модифікують масив. Частина 1. Методи sort(), reverse(), forEach(), filter(), map(), copyWithin(), splice()
- Методи, що модифікують масив. Частина 2. Методи pop(), push(), reduce(), reduceRight(), shift(), unshift(), fill()
⇑