JSFiddle - React, Tailwind, and code Playground

by cwdoh

HTML

<div id="result">
</div>

JavaScript

var data = [
      {
        "attr" : {
        "id" : "97987"
      },
      "children" : [
            {
              "attr" : {
              "id" : "97988"
            },
            "children" : [
                  {
                    "attr" : {
                    "id" : "97992"
                  },
                  "data" : "tag5"
              }],
            "data" : "tag2"
        },
        {
          "attr" : {
              "id" : "97993"
          },
          "data" : "tag6"
        }
      ],
    "data" : "tag1"
  },
  {
    "attr" : {
        "id" : "97989",
    },
    "children" : [
          {
            "attr" : {
              "id" : "97990"
            },
            "data" : "tag4"
          }],
    "data" : "tag3"
  }
];

function getAll( input, target ) {
    var result = [];
    
    function parseData( input, target ) {
        $.each( input, function ( index, obj ) {
            if ( index == target ) {
                result.push( obj );
            }
            else {
                switch ( $.type( obj ).toLowerCase() ) {
                    case "object":
                    case "array":
                        parseData( obj, target );
                        break;
                }
            }
        } );
    }
    
    parseData( data, "id" );

    return result;
}


$("div").text( JSON.stringify( getAll( data, "id" ) ) );