Find by key deep in a nested array

后端 未结 17 1563
礼貌的吻别
礼貌的吻别 2020-11-22 15:41

Let\'s say I have an object:

[
    {
        \'title\': \"some title\"
        \'channel_id\':\'123we\'
        \'options\': [
                    {
                 


        
17条回答
  •  傲寒
    傲寒 (楼主)
    2020-11-22 15:53

    @Iulian Pinzaru's answer was almost exactly what I needed, but it doesn't work if your objects have any null values. This version fixes that.

    function  deepSearch (object, key, predicate) {
      if (object.hasOwnProperty(key) && predicate(key, object[key]) === true) return object
    
      for (let i = 0; i < Object.keys(object).length; i++) {
        const nextObject = object[Object.keys(object)[i]];
        if (nextObject && typeof nextObject === "object") {
          let o = deepSearch(nextObject, key, predicate)
          if (o != null) return o
        }
      }
      return null
    }
    

提交回复
热议问题