Каков самый простой способ найти наименьший подмассив, содержащий хотя бы один элемент из каждого из других массивов в JavaScript? - PullRequest
1 голос
/ 19 июня 2020

Каков самый простой способ найти наименьший подмассив, содержащий хотя бы один элемент из каждого из других массивов в JS?

Например, для массивов [1,2], [1,3], [4] результат должен быть [1,4] , он содержит 1 из первого и второго массива и 4 из третьего массива

1 Ответ

0 голосов
/ 19 июня 2020
  1. Перемещение по всем числам, Построение объекта counts с числом в качестве ключа и значением в качестве частоты их появления в массиве.
  2. Используйте map в массиве, Каждый подмассив определяет элемент, который имеет максимальное количество (более частый элемент).
  3. Используйте Set, чтобы удалить повторяющиеся записи, чтобы получить наименьший подмассив.

const smallsub = (arr) => {
  const counts = {};
  arr.flat().forEach((num) => (counts[num] = (counts[num] ?? 0) + 1));

  const items = arr.map((nums) =>
    nums.reduce((max, num) => (counts[num] > counts[max] ? num : max))
  );

  return [...new Set(items)];
};

const arr = [[1, 2], [1, 3], [4]];

console.log(smallsub(arr));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...