Объединение методов массива в JavaScript

Опубликовано: 9 Декабря, 2021

В JavaScript есть несколько методов, которые могут перебирать массив. У нас уже есть знания об этих методах массива.

  1. Метод фильтрации (filter ())
  2. Метод карты (map ())
  3. Метод уменьшения (reduce ())
  4. Метод поиска (find ())
  5. Метод сортировки (sort ())

Мы узнаем, как связать все методы массива вместе.

Пример:

const products = [
// Here we create an object and each
// object has a name and a price
{ name: 'dress' , price: 600 },
{ name: 'cream' , price: 60 },
{ name: 'book' , price: 200 },
{ name: 'bottle' , price: 50 },
{ name: 'bedsheet' , price: 350 }
];

Мы хотим сделать две вещи.

  1. Отфильтруйте те элементы, цена которых больше 100, с помощью метода filter () .
  2. Сопоставьте эти элементы с новым массивом с новой продажной ценой (скидка 50%).

Пример:

Выход:

Более быстрый способ добиться этого - использовать цепочку методов массива. Все методы работы с массивами работают с массивами и возвращают массивы. Таким образом, мы можем легко связать эти методы.

Пример:

<script>
const products = [
{ name: 'dress' , price: 600 },
{ name: 'cream' , price: 60 },
{ name: 'book' , price: 200 },
{ name: 'bottle' , price: 50 },
{ name: 'bedsheet' , price: 350 }
];
// Writing the different array methods
// on different lines increases the
// readability
const sale = products
.filter(product => product.price > 100)
.map(product => `the ${product.name}
is ${product.price / 2} rupees`);
document.write(sale);
</script>

Выход:

Заключение:

  1. Результат в обоих случаях остается одинаковым. Второй метод называется объединением методов массива, что делает код немного более лаконичным.
  2. Поскольку метод фильтра возвращает массив, мы можем связать его с методом карты, который работает с массивом, и наоборот.
  3. Этот процесс можно применить ко всем методам массива, что делает код кратким.
  4. Этот метод применим не только для массивов, но мы также можем использовать их для строк, если методы возвращаются и работают со строками. Будет применяться тот же принцип.