2016-04-26 5 views
0

у меня есть массив объектов, которые выглядят что-то вроде ниже,Фильтр массив объектов с помощью nodejs

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

я получаю выше массив объектов в качестве ответа от этой конечной точки/получить/технологии, предположим, что, если эта конечная точка будем иметь строку запроса некоторые вещи, как это/получить/технологии? д = CSS, как я могу фильтровать ответ только, чтобы сделать ниже,

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

у меня есть узел/экспресс-приложение таким образом в контроллере, если я делать "req.query.q", то я могу захватить параметр запроса, с этим параметром запроса, как я могу фильтровать оригинал массив объектов .. я наткнулся на некоторых НПЕ пакеты, но не уверены, что SUITE моей потребности,

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 

Было бы хорошо, если я могу захватить параметр запроса и найти тексты соответсвующих .. скажем, например, если параметр запроса - это просто «SS», тогда результат должен отображать как CSS, так и JS, так как текст «S» присутствует в обоих из них.

ответ

0

Working Example

Попробуйте это:

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

Вы могли бы просто использовать filter:

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

var filteredArray = data.filter(item => (item.name === req.query.q)); 
Смежные вопросы