JavaScript: подсчет вхождений значения в массив

Чтобы проверить, сколько раз значение появляется в массиве в JavaScript, вы можете использовать различные методы. Вот некоторые часто используемые подходы:

  1. Использование цикла for: перебирайте массив и сохраняйте переменную count, чтобы отслеживать количество вхождений значения.
function countOccurrences(arr, value) {
  let count = 0;
  for (let i = 0; i < arr.length; i++) {
    if (arr[i] === value) {
      count++;
    }
  }
  return count;
}
  1. Использование метода фильтра: используйте метод filter, чтобы создать новый массив, содержащий только элементы, соответствующие заданному значению, а затем верните длину этого отфильтрованного массива.
function countOccurrences(arr, value) {
  return arr.filter(item => item === value).length;
}
  1. Использование метода уменьшения: используйте метод reduceдля накопления количества вхождений путем сравнения каждого элемента с заданным значением.
function countOccurrences(arr, value) {
  return arr.reduce((count, item) => count + (item === value ? 1 : 0), 0);
}

<ол старт="4">

  • Использование метода indexOf в цикле: выполните итерацию по массиву и используйте метод indexOf, чтобы проверить, существует ли значение в каждом индексе. Увеличьте счетчик, если совпадение найдено.
  • function countOccurrences(arr, value) {
      let count = 0;
      for (let i = 0; i < arr.length; i++) {
        if (arr.indexOf(value, i) !== -1) {
          count++;
        }
      }
      return count;
    }
    1. Использование метода уменьшения с объектом: создайте объект, ключи которого представляют уникальные значения из массива, а их значения хранят количество вхождений.
    function countOccurrences(arr, value) {
      return arr.reduce((countMap, item) => {
        countMap[item] = (countMap[item] || 0) + 1;
        return countMap;
      }, {})[value] || 0;
    }

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