Подсчитайте количество раз, когда одно и то же значение появляется в массиве javascript
Я хотел бы знать, есть ли собственный JavaScript-код, который делает то же самое, что и это:
function f(array,value){
var n = 0;
for(i = 0; i < array.length; i++){
if(array[i] == value){n++}
}
return n;
}
Ответ 1
Для этой цели могут быть разные подходы. И ваш подход с циклом for очевидно, не является неуместным (за исключением того, что он выглядит избыточно по количеству кода). Вот несколько дополнительных подходов к получению появления определенного значения в массиве:
Использование метода Array.forEach:
var arr = [2, 3, 1, 3, 4, 5, 3, 1];
function getOccurrence(array, value) {
var count = 0;
array.forEach((v) => (v === value && count++));
return count;
}
console.log(getOccurrence(arr, 1)); // 2
console.log(getOccurrence(arr, 3)); // 3
Использование метода Array.filter:
function getOccurrence(array, value) {
return array.filter((v) => (v === value)).length;
}
console.log(getOccurrence(arr, 1)); // 2
console.log(getOccurrence(arr, 3)); // 3
Ответ 2
Вы можете использовать сокращение, чтобы добраться туда: