过滤嵌套的 JSON javascript

kal*_*lin 2 javascript api json filter

我正在创建一个采用这样的 JSON 的 API:

 "hightlights":[
  {
     "title":"Fun",
     "url":"fun/index.html",
     "queries":
     [
        "music",
        "artists",
        "events",
        "internet"
     ]
  },
  {
     "title":"Internet",
     "url":"internet/index.html",
     "queries":
     [
        "javascript",
        "web",
        "internet",
     ]
  }
 ] 
Run Code Online (Sandbox Code Playgroud)

我需要使用用户给出的单词过滤 JSON,并返回另一个 JSON,其中只有包含“查询”中的单词的对象。

 If word === 'music', receive:
 {
     "title":"Fun",
     "url":"fun/index.html",
     "queries":[
        "music",
        "artists",
        "events",
        "internet"
     ]
 }

 If word === 'internet', receive:
 {
     {
     "title":"Fun",
     "url":"fun/index.html",
     "queries":[
        "music",
        "artists",
        "events",
        "internet"
     ]
  },
  {
     "title":"Internet",
     "url":"internet/index.html",
     "queries":[
        "javascript",
        "web",
        "internet",
     ]
  }
Run Code Online (Sandbox Code Playgroud)

我的问题是如何嵌套这个值?如果有人能给我一些例子......我会很感激......

Kel*_*ita 5

试试下面的:

function getResult(filterBy, objList) {
  return objList.hightlights.filter(function(obj) {
   return obj.queries.some(function(item){
     return item.indexOf(filterBy) >= 0;
   });
 });
}
Run Code Online (Sandbox Code Playgroud)

输入#1:

getResult("internet", yourObject);
Run Code Online (Sandbox Code Playgroud)

输出#1:

[{"title":"Fun","url":"fun/index.html","queries":["music","artists","events","internet"]},{"title":"Internet","url":"internet/index.html","queries":["javascript","web","internet"]}]
Run Code Online (Sandbox Code Playgroud)

输入#2:

getResult("music", yourObject);
Run Code Online (Sandbox Code Playgroud)

输出#2:

[{"title":"Fun","url":"fun/index.html","queries":["music","artists","events","internet"]}]
Run Code Online (Sandbox Code Playgroud)