php

Ітерація елементів масиву без циклу

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"]
author
Автор: Ігор Рибалко
Працюю фронтенд розробником з 2014 року. Основний стек технологій - Vue.js і WordPress

Схожі записи:

  • Як надіслати дані HTML-форми на email за допомогою PHP
    Відправка форми на електронну пошту є важливим і поширеним способом спілкування з користувачем веб-ресурсу. Давайте напишемо просту форму для відпправки даних на email за...
  • Плагін jQuery Tabs
    Таби – досить поширений елемент. В Інтернеті є різні реалізації цього елемента. Але часто такі таби перевантажені кодом, наповнені ефектами, які навряд чи знадобляться в ...
  • Плагін jQuery Accordion
    На сайтах часто використовується акордеон. Цей елемент популярний і в той же час зручний. Акордеон допомагає структурувати контент і економить місце. У своїй роботі я час...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *