Рубрики
Без рубрики

Преобразования массива с помощью метода `creat ()`

JavaScript Array имеет отличный метод уменьшить (), который может делать удивительные преобразования с массивами, li … Tagged с JavaScript, уменьшите.

JavaScript Array имеет отличный метод уменьшить () Это может делать удивительные преобразования с массивами, например, выравнивание или преобразование в другие типы данных. Этот метод запускает и выполняет предоставленную функцию по каждому значению массива и выводит одно значение. В этой статье я хотел бы поделиться несколькими примерами того, как использовать ее в разных случаях.

Структура метода

Метод принимает обратный вызов и начальное значение. Обратный вызов берет четыре аргумента:

  • аккумулятор – накапливает возвращаемое значение
  • Значение – текущее значение это обрабатывается
  • Индекс – индекс текущего элемента (необязательно)
  • массив – исходный массив (необязательно)
Array.prototype.reduce(function(acc, value, ?index, ?array), ?initialValue)

Начальное значение необязательно. Если он не предоставлен, обратный вызов займет первый элемент массива и использует его в качестве начального значения. Если первоначальное значение поставляется, против него будут выполняться следующие элементы массива, накапливать новые результаты, и вы должны убедиться, что вы вернете его из функции.

Кроме того, мне нужно упомянуть, что запуск редуктора на пустом массиве приведет к брошению ошибки. Всегда проверяйте и убедитесь, что у массива есть хотя бы один элемент.

Сценарии использования

Ниже вы найдете три примера, как вы можете уменьшить и преобразовать массивы для вашей выгоды.

Вернуть сумму значений

Если у вас есть множество чисел, легко получить их сумму.

[1, 2, 3].reduce((acc, value) => acc + value); // output 6

Нам не нужно указывать начальное значение. Функция редуктора займет первый элемент 1 и используйте его в качестве начального значения, чтобы накапливать и вернуть новый результат. С функцией стрелки вам не нужно указывать оператор возврата. Новый результат будет возвращен по умолчанию.

Вернуть подсчет экземпляров

Групповые значения и возражают, чтобы узнать, сколько раз значение повторяется в массиве:

['a', 'b', 'a', 'c', 'b'].reduce((acc, value) =>
  acc[value]
  ? { ...acc, [value]: acc[value]++ }
  : { ...acc, [value]: 1 },
{})
// output { a: 2, b: 2, c: 1 }

Здесь мы указали начальное значение как объект и на каждую итерацию элемента массивов, выполняя проверку, существует ли значение в объекте. Если это так, мы возвращаем объект с предыдущими значениями ( ... ACC ) и увеличенное значение [val]: acc [val] ++ Анкет

Сплющенные массивы

Если у вас есть массив массивов, вы можете легко сгладить значения и уменьшить до одного массива значений с помощью Little Roying:

[['a', 'b'], ['c'], ['d', 'e']].reduce((acc, value) => [...acc, ...value], []);
// output [ "a", "b", "c", "d", "e" ]

Суммировать

уменьшить () Метод убедительный и гибкий, может объединить различные методы массива, такие как map () и Filter () Анкет Выполните математическую операцию или запустите асинхронный код в последовательности. И поскольку он гибкий, есть больше места для ошибок. При объединении нескольких методов и процессов в один трудно понять намерение и отлаживать его.

Оригинал: “https://dev.to/spukas/array-transformations-with-reduce-method-2jm5”