JavaScript 再起処理サンプル

階層の最後までみてひとつでも check: true があるなら true を返す。

const data = {
	children: [
    {
    	check: false,
      children: [
      	{
          check: false,
          children: [
          	{check: false},
            {check: false},
            {check: true},
          ]
        },
        {
        check: false,
        children: [
          	{check: false},
            {check: false},
            {check: false},
          ]
        },
        {
        check: false,
        children: [
          	{check: false},
            {check: false},
            {check: false},
          ]
        },
      ]
    },
    {
      check: false,
      children: [
        {
          check: false,
          children: [
            {check: false},
            {check: false},
            {check: false},
          ]
        },
        {
        check: false,
        children: [
            {check: false},
            {check: false},
            {check: false},
          ]
        },
        {
        check: false,
        children: [
            {check: false},
            {check: false},
            {check: false},
          ]
        },
      ]
    },
    {
      check: false,
      children: [
        {
          check: false,
          children: [
            {check: false},
            {check: false},
            {check: false},
          ]
        },
        {
        check: false,
        children: [
            {check: false},
            {check: false},
            {check: false},
          ]
        },
        {
        check: false,
        children: [
            {check: false},
            {check: false},
            {check: false},
          ]
        },
      ]
    },
	]
}


const hoge = (arr) => {
	return arr.some(({ check, children }) => {
    if(children !== undefined) return hoge(children) || check
    return check
  })
}


console.log(hoge(data.children))