JSFiddle - React, Tailwind, and code Playground
by TekVanDo
HTML
<script src="http://underscorejs.ru/underscore-min.js"></script>
JavaScript
var roleList1 = [{
"roleName": "User",
"roleId": "role1",
"children": [{
"roleName": "subUser1",
"roleId": "role11",
"children": []
}, {
"roleName": "subUser2",
"roleId": "role12",
"children": [{
"roleName": "subUser2-1",
"roleId": "role121",
"children": [{
"roleName": "subUser2-1-1",
"roleId": "role1211",
"children": []
}, {
"roleName": "subUser2-1-2",
"roleId": "role1212",
"children": []
}]
}]
}]
},
{
"roleName": "Admin",
"roleId": "role2",
"children": []
},
{
"roleName": "Guest",
"roleId": "role3",
"children": []
}];
console.log();
var recursiveFilter = function(x,prop,searchText) {
console.log(x);
return x.prop == searchText ||
( typeof x.children != 'undefined' && recursiveFilter(x.children,prop,searchText) );
};
even = _.filter(roleList1, recursiveFilter(x,"roleName","role1211"));
console.log(even);