Array comprehension в JavaScript: примеры использования
JavaScript

Array comprehension в JavaScript: примеры использования

Razilator

Array comprehension в JavaScript не поддерживается напрямую, но вместо этого можно использовать методы массива, такие как map(), filter(), reduce() для выполнения подобных операций.

Синтаксис Array comprehension

Основной синтаксис Array comprehension выглядит следующим образом:

Синтаксис
[выражение for (переменная of итерируемый_объект) условие]

Где:

  • выражение - это выражение, которое будет выполнено для каждого элемента итерируемого_объекта
  • переменная - это переменная, которая будет использоваться для хранения каждого элемента итерируемого_объекта во время выполнения выражения
  • итерируемый_объект - это массив или другой итерируемый объект, который вы хотите использовать для создания нового массива
  • условие - это необязательное условие, которое должно выполняться для каждого элемента итерируемого_объекта. Если условие не выполняется, то соответствующий элемент не будет добавлен в новый массив.

Примеры использования Array comprehension в JS

Создание нового массива на основе существующего массива с помощью map():

index.js
let numbers = [1, 2, 3, 4, 5];
let squares = numbers.map(num => num ** 2);
console.log(squares); // [1, 4, 9, 16, 25]

Фильтрация элементов существующего массива с помощью filter():

index.js
let numbers = [1, 2, 3, 4, 5];
let evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // [2, 4]

Сворачивание массива в одно значение с помощью reduce():

index.js
let numbers = [1, 2, 3, 4, 5];
let sum = numbers.reduce((acc, num) => acc + num, 0);
console.log(sum); // 15

Создание списка из строк, которые содержат только гласные буквы:

index.js
let vowels = ['a', 'e', 'i', 'o', 'u'];
let words = ['apple', 'banana', 'orange', 'pear', 'kiwi'];
let vowelWords = words.filter(word => [...word].every(letter => vowels.includes(letter)));
console.log(vowelWords); // ["apple", "orange"]

Array comprehension позволяет более лаконичным и читаемым способом создавать новые массивы на основе существующих, что уменьшает количество кода и повышает эффективность программирования.

;