JSFiddle - React, Tailwind, and code Playground
by Samuel GuimarĂŁes
HTML
<script src="//cdnjs.cloudflare.com/ajax/libs/underscore.js/1.4.2/underscore-min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/backbone.js/0.9.2/backbone-min.js"></script>
JavaScript
var files = {
'about.html' : {
path : './about.html'
},
'about2.html' : {
path : './about2.html'
},
'about3.html' : {
path : './about3.html'
},
folderName : {
path : './folderName',
inputs : {
'sub-child.html' : {
path : 'folderName/sub-child.html'
}
}
}
};
function getRecursiveFilter(searchText) {
var recursiveFilter = function(x) {
return x.path == searchText ||
(typeof x.children != 'undefined'
&& arguments.callee(x.inputs['sub-child.html']) );
};
return recursiveFilter;
}
function test(searchText) {
console.log('Query "' + searchText + '" result: ' + JSON.stringify(
_.filter(files, getRecursiveFilter(searchText))
));
}
test('./about2.html');
test('folderName/sub-child.html');