il codice è abbastanza autoesplicativo:codice:function (data,query) { var x = []; data.forEach(function(v){ var a = v.tags; if(a) { a.forEach(function (el) { console.log(el) if (query.test(el)) x.push(el) }); } }); return arrayunique(x); }
-data è un array di object che contengono un field "tags" (array di stringhe).
-"query" in input è regex
in output ho un array piano di tag che matchano la query (a prescindere dall'oggetto originale che li conteneva). Ovviamente arrayunique elimina i doppioni.
Non sono esperto, ma mi pare un caso estremamente semplice in cui si potrebbe usare un approccio map-reduce, quanto meno per rendere un pelo più elegante il codice (anche se mi pare di ricordare che map() di javascript è internamente mappato con for..).

).
Rispondi quotando