JavaScript
Array comprehension в JavaScript: примеры использования
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 позволяет более лаконичным и читаемым способом создавать новые массивы на основе существующих, что уменьшает количество кода и повышает эффективность программирования.