2016-04-26 16 views
0

ich ein Objekt-Array haben, die wie unten etwas aussehen,Filter Objektarray über NodeJS

{ 
    "data": [ 
      { 
       "name": "HTML", 
       "description": "Hyper Text Markup Language" 
      }, 
      { 
       "name": "CSS", 
       "description": "Cascading Style Sheet" 
      }, 
      { 
       "name": "JS", 
       "description": "Javascript" 
      } 
      ] 
} 

ich das oben genannte Ziel-Array als eine Antwort von diesem Endpunkt/get/technologies, nehme an, wenn dieser Endpunkt Gonna haben eine Abfrage-String soetwas wie diese/get/technologies? q = CSS, wie ich die Antwort filtern nur die unten zu machen,

{ 
    "data": [ 
      { 
       "name": "CSS", 
       "description": "Cascading Style Sheet" 
      } 
      ] 
} 

ich so in der Steuerung einen Knoten/Express-App haben, wenn ich das tun "req.query.q", dann kann ich den Abfrageparameter mit diesem Abfrageparameter abrufen, wie kann ich das Original filtern Objektarray .. Ich kam über einige npm Pakete aber nicht sicher, was mein Bedürfnis Hotel würde,

https://www.npmjs.com/package/filter-array 
https://www.npmjs.com/package/object-filter 
https://www.npmjs.com/package/array-filter 
https://www.npmjs.com/package/array-query 

Es wäre auch schön, wenn ich die Abfrage-Parameter greifen kann und die passenden Texte .. sagen wir zum Beispiel finden, wenn die Abfrageparameter ist nur "SS", dann sollte das Ergebnis sowohl CSS als auch JS darstellen, da der Text "S" in beiden vorhanden ist.

Antwort

0

Working Example

Try this:

var d = [ 
      { 
       "name": "HTML", 
       "description": "Hyper Text Markup Language" 
      }, 
      { 
       "name": "CSS", 
       "description": "Cascading Style Sheet" 
      }, 
      { 
       "name": "JS", 
       "description": "Javascript" 
      } 
      ]; 

var a = d.filter(function(el) { 
    return el.name === 'CSS'; 
}); 
1

Sie nur filter verwenden:

var data = [ 
    // the array to be filtered 
]; 

var filteredArray = data.filter(item => (item.name === req.query.q)); 
Verwandte Themen