Джерело
Той самий Бабіч | Пссст, не бажаєте трошки декларативности у вашому JS?Якшо раптом, з як...
2 100 Охват/переглядів
2025-03-19 09:44
Повідомлення №2331
Пссст, не бажаєте трошки декларативности у вашому JS?Якшо раптом, з якоїсь причини, вам не подобаються старі добрі імперативні цикли, а зокрема надійний, як дрова for, ділюся з вами, як з красивого коду зробити некрасивий за допомогою Array.from.Більшість із нас знає, що за допомогою Array.from можна створити новий масив з будь-якого обʼєкта, що підтримує Iterable інтерфейс, тобто має в собі імплементований метод [Symbol.iterator], в якому описано, як саме і що саме перебиратиметься в обʼєкті, або ж з array-like обʼєкта, як в моєму прикладі. Як бачимо, аби обʼєкт був array-like, йому достатньо мати властивість length,Так от. Другим аргументом Array.from приймає такий собі mapFn, яка застосовується до нових елементів масиву перед їхнім засовуванням в той масив. Шо з тим робити, то вже вам рішать.Мені, наприклад, завжди було сумно й прикро, що той самий for доволі багатослівний і, на додачу, якщо знати (ну або не знати) як, то його можна так зламати, що аж мама насварить. А ми, в основному, використовуємо його досить прямолінійно — просто виконати операцію n разів, без усілякої акробатики. І декларативний підхід в цьому плані дещо надійніший, бо забирає у нас різні небезпечні для життя й здоровʼя предмети, якими щедро ділиться for.