小型递归获取符合条件数据

52 阅读1分钟

递归判断是否符合条件然后把符合条件的返回,这样写有没有问题,有没有更好的方法,期望各位大佬给点建议0.0

function dg(obj, arr) {
  for (let item of obj) {
    if (item.key == '2') {
      arr.push(item)
      if (item.children) {
        arr.concat(dg(item.children, arr))
      }
    } else if (item.children) {
      arr.concat(dg(item.children, arr))
    }
  }
  return arr
}

var data = [  {    key: '1',    a: '2',    children: [      { key: '2', a: 3 },      { key: '3', a: '2' }    ]
  }, {
    key: '2',
    a: 2
  }, {
    key: '2',
    a: 2
  },
  { key: '2', a: 3 },
]
let r = dg(data, [])
console.log(r)