Как проверить что все элементы подмассива принадлежат одному типу в js

Подскажите как проверить что все элементы подмассива принадлежат одному типу в js.

[['', 'qwerty'], [65, 98, 13], [''], ['', '1'], ['', 1], []]

Ответы (2 шт):

Автор решения: Alexander Lonberg

const arrs = [['', 'qwerty'], [65, 98, 13], [''], ['', '1'], ['', 1], []]

const res = arrs.map((item) => {
  if (item.length < 2) return true
  const [first, ...items] = item
  return items.every((i) => typeof i === typeof first)
})

console.log(res)

UPD: для скорости на больших массивах лучше так

const res3 = arrs.map((item) => {
  for (let i = 1; i < item.length; ++i)  if (typeof item[0] !== typeof item[i]) return false
  return true
})
→ Ссылка
Автор решения: yar85

Предыдущий ответ верен, но слегка переусложнен - поэтому, вот то же самое решение в более простом (учебном) варианте:

const arrs = [['', 'qwerty'], [65, 98, 13], [''], ['', '1'], ['', 1], []];

const res = arrs.map(([firstItem, ...restItems]) => (
  restItems.every(item => typeof item === typeof firstItem)
));

console.log(res);

Когда метод every вызван от пустого массива, он возвращает true - такое поведение и логично, и закреплено стандартом ES. Поэтому, здесь не обязательна предварительная проверка количества элементов, без нее результат тоже будет корректным (существует общее правило: дублирований стандартного поведения своим кодом лучше избегать, по мере возможности).

→ Ссылка