Ітерація елементів масиву без циклу
Last updated: 28.08.2025
Views: 95
Приклади дуже абстрактні, оскільки цикли існують. Наша умова буде такою. Потрібно вибрати всі елементи масиву за заданим атрибутом. Або, якщо сказати точніше, потрібно відфільтрувати масив. Є кілька рішень.
Найбільш підходящим варіантом у PHP є використання вбудованої функції array_filter(). Уявімо, що її також не існує. Ми напишемо її за допомогою рекурсії.
На PHP функція виглядає так:
PHP
function getArrayElements($arr, $pattern) {
static $i = 0;
static $arrayResult = [];
if (preg_match($pattern, $arr[$i])) {
$arrayResult[] = $arr[$i];
}
$i++;
if (count($arr) == $i) {
return;
} else {
getArrayElements($arr, $pattern);
}
return $arrayResult;
}
Приклад:
PHP
$arr = ['a', 'xd', 'w', 1, 'y', 'x']; $pattern = '/^x/'; print_r(getArrayElements($arr, $pattern)); // Array ( [0] => xd [1] => x )
Тепер давайте розглянемо те саме в JavaScript. У JS масив має подібний метод filter() . Спробуємо обійтися без нього, використавши рекурсію.
JavaScript
let i = 0,
arrayResult = [];
function getArrayElements(arr, pattern) {
if (pattern.test(arr[i])) {
arrayResult.push(arr[i]);
}
i++;
if (arr.length == i) {
return;
} else {
getArrayElements(arr, pattern);
}
return arrayResult;
}
Приклад:
JavaScript
const arr = ['a', 'xd', 'w', 1, 'y', 'x'],
pattern = /^x/;
console.log(getArrayElements(arr, pattern)); //["xd", "x"]
Схожі записи:
-
Як надіслати дані HTML-форми на email за допомогою PHP
Відправка форми на електронну пошту є важливим і поширеним способом спілкування з користувачем веб-ресурсу. Давайте напишемо просту форму для відпправки даних на email за...
-
Плагін jQuery Tabs
Таби – досить поширений елемент. В Інтернеті є різні реалізації цього елемента. Але часто такі таби перевантажені кодом, наповнені ефектами, які навряд чи знадобляться в ...
-
Плагін jQuery Accordion
На сайтах часто використовується акордеон. Цей елемент популярний і в той же час зручний. Акордеон допомагає структурувати контент і економить місце. У своїй роботі я час...
Залишити відповідь