Пройдите массив и увеличивайте счётчик для каждого числа. В примере J — неопределённый идентификатор; для указанного результата последним элементом должно быть число 3.
Определение частоты появления чисел в массиве
Пройдите массив и увеличивайте счётчик для каждого числа. В примере J — неопределённый идентификатор; для указанного результата последним элементом должно быть число 3.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Задача требует реализовать функцию, принимающую массив целых чисел и возвращающую объект, где каждый ключ — это число из массива, а соответствующее значение — сколько раз оно встречается.
function getFrequency(input) {}
console.log(getFrequency([1, 2, 2, 3, 3, J])); // { 1: 1, 2: 2, 3: 3 }
Функция должна корректно обрабатывать любые наборы чисел и формировать объект‑отчёт о количестве их появлений.
Ответ
Пройдите массив и увеличивайте счётчик для каждого числа. В примере J — неопределённый идентификатор; для указанного результата последним элементом должно быть число 3.
function getFrequency(input) {
const result = {};
for (const number of input) {
if (!Number.isInteger(number)) throw new TypeError('Ожидается целое число');
result[number] = (result[number] ?? 0) + 1;
}
return result;
}
getFrequency([1, 2, 2, 3, 3, 3]);
// { 1: 1, 2: 2, 3: 3 }
Ключи обычного объекта становятся строками. Отрицательные числа тоже поддерживаются. Время O(n), дополнительная память O(k), где k — количество различных значений; не исправляйте J молча внутри самой функции.