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))
最近のコメント