Как вывести false если все массивы пусты?

У меня есть массив с объектами, внутри каждого объекта есть еще массив. Функция должна выводить false, если в каждом объекте есть пустой массив.

items = [
  {
    id: '1',
    title: "Group 1",
    items: [
      { id: 'group1_item1', value: 'Title 1' },
      { id: 'group1_item2', value: 'Title 2' },
      { id: 'group1_item3', value: 'Title 3' },
    ]
  },
  {
    id: '2',
    title: "Group 2",
    items: [
      { id: 'group2_item1', value: 'Title 4' },
      { id: 'group2_item2', value: 'Title 5' },
      { id: 'group2_item3', value: 'Title 6' },
    ]
  },
]

Использую такую функцию, но она возвращает false в любом случае, если хоть один массив пуст, а другой нет, а нужно только если все массивы пусты. Возможно дико туплю и ответ перед глазами, но застрял на три дня уже( ХЭЛП!

   function getResultSearch() {
let result;
const isEmpty = resultItems => !Object.values(resultItems).every(({ length }) => length);
for (let el of resultItems) {
  result = el.items
}
return isEmpty (result)
  }


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

Автор решения: Aziz Umarov

С ходу можно такое придумать без рекурсии.

let items = [
  {
    id: '1',
    title: "Group 1",
    items: [
      { id: 'group1_item1', value: 'Title 1' },
      { id: 'group1_item2', value: 'Title 2' },
      { id: 'group1_item3', value: 'Title 3' },
    ]
  },
  {
    id: '2',
    title: "Group 2",
    items: [
      { id: 'group2_item1', value: 'Title 4' },
      { id: 'group2_item2', value: 'Title 5' },
      { id: 'group2_item3', value: [ ] },
    ]
  },
]

let items1 =
  {
    id: '1',
    title: "Group 1",
    items: [
    ]
  }



let checkObjectForEmptyArray = (obj) => {
  let stringifiedObj = JSON.stringify(obj);
  return !stringifiedObj.includes('[') ? false : stringifiedObj.replaceAll('[]', '').includes("[")
}

console.log(checkObjectForEmptyArray(items));
console.log(checkObjectForEmptyArray(items1));

→ Ссылка