Этот алгоритм считает кол-во вхождений элемента в массиве
var numbers = [2, 4, 4, 7, 6, 8, 4];
function howMany(array, value) {
var n = 0;
for (var i = 0; i < array.length; i++)
if (array[i] == value)
n++;
return n;
}
console.log(howMany(numbers, 3)); // -> 0
console.log(howMany(numbers, 4)); // -> 3
console.log(howMany(numbers, 5)); // -> 0
console.log(howMany(numbers, 6)); // -> 0
Должен ведь быть соответствующий метод для массива?
Можно прикрутить замыкание, чтобы сохранить результаты первого прохода по массиву и переиспользовать их.
function howMany(arr) {
const map = arr.reduce((c, item) => (c[item]=(c[item]||0) + 1, c), {});
return num => map[num];
}
const data = [1, 5, 4, 3, 4, 6, 4, 7, 1];
console.log(howMany(data)(4)); // 3
const howManyInData = howMany(data);
console.log(howManyInData(1), howManyInData(4)); // 2 3
const numbers = [2, 4, 4, 7, 6, 8, 4];
Array.prototype.howMany = function(value) {
return this.reduce((prev, curr) => {
return curr === value ? prev+1 : prev
}, 0);
}
console.log(numbers.howMany(3));
console.log(numbers.howMany(4));
console.log(numbers.howMany(5));
console.log(numbers.howMany(6));
ответ free_ze в комментариях решил рпоблему
array.filter(x => x === value).length
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости