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);
}
il codice è abbastanza autoesplicativo:
-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..
).