Инструкции по вычислению среднего значения сопоставленного массива
Для вычисления среднего значения массива вы можете сопоставить каждый элемент с новым значением с использованием заданной функции. Вот шаги:
- Откройте Терминал/SSH и введите
node
, чтобы начать практиковаться в написании кода.
- Используйте
Array.prototype.map()
, чтобы сопоставить каждый элемент со значением, возвращаемым функцией fn
.
- Используйте
Array.prototype.reduce()
, чтобы добавить каждое сопоставленное значение к накапливающемуся значению, инициализированному значением 0
.
- Разделите полученный массив на его длину, чтобы получить среднее значение.
Вот код, который вы можете использовать:
const averageBy = (arr, fn) =>
arr
.map(typeof fn === "function" ? fn : (val) => val[fn])
.reduce((acc, val) => acc + val, 0) / arr.length;
Вы можете протестировать эту функцию с использованием следующих примеров:
averageBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], (o) => o.n); // 5
averageBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], "n"); // 5