Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从JSON数组搜索结果查询中提取动态键值_Javascript_Jquery_Arrays_Json - Fatal编程技术网

Javascript 从JSON数组搜索结果查询中提取动态键值

Javascript 从JSON数组搜索结果查询中提取动态键值,javascript,jquery,arrays,json,Javascript,Jquery,Arrays,Json,我使用WikipediaAPI搜索Wiki文章。当我单击submit按钮时,会得到一个JSON数组: 0 {ns: 0, title: "Help", size: 3677, wordcount: 433, snippet: "<span class=\"searchmatch\">Help</span> is any form …mmand-line shells that invokes documentations and", …} 1 {ns: 0, title

我使用WikipediaAPI搜索Wiki文章。当我单击submit按钮时,会得到一个JSON数组:

0 {ns: 0, title: "Help", size: 3677, wordcount: 433, snippet: "<span class=\"searchmatch\">Help</span> is any form …mmand-line shells that invokes documentations and", …}

1 {ns: 0, title: "Online help", size: 7326, wordcount: 380, snippet: "(HTML), which includes HTML <span class=\"searchmat…earchmatch\">help</span> is also provided via live", …}

2 {ns: 0, title: "Help desk", size: 9491, wordcount: 1296, snippet: "A <span class=\"searchmatch\">help</span> desk is a …ated to a company's or institution's products and", …}

...
0{ns:0,标题:“Help”,大小:3677,字数:433,代码段:“Help是任何形式的……m调用文档的命令行shell,”,…}
1{ns:0,标题:“联机帮助”,大小:7326,字数:380,代码段:“(HTML),其中包括HTML帮助,也可通过live”,…}
2{ns:0,标题:“帮助台”,尺寸:9491,字数:1296,片段:“帮助台是……与公司或机构的产品相关联的,”,…}
...
我需要提取标题的值,并在结果列表的HTML中使用它,同时将其放入url中,以便用户可以单击结果并转到相应的页面。(网址:)

数组位于data.query.search中

由于结果是动态的,我可能需要某种for循环,它将遍历这个数组,不管有多少个结果。我已经尝试过这个for循环,但它不起作用

console.log(data.query.search); //shows array in console
          data.query.search =""; //the location of JSON array
 for (i = 0; i < data.query.search["results"].length; i++) {
  data.query.search["results"][i]["title"];
  console.log("results"); 
}
console.log(data.query.search)//在控制台中显示阵列
data.query.search=“”//JSON数组的位置
for(i=0;i

我怀疑我没有正确地瞄准数组元素、键和值。我很感激你的建议。干杯。

您的代码有一些奇怪的东西。首先,您正在第二行“清除”
data.query.search
。其次,在循环中,您不需要将每个结果的
标题
分配给任何变量,只需打印“results”。第三,您说数组位于
data.query.search
中,但您试图访问属性
results
。您可以尝试以下操作:

var data={query:{search:[
{ns:0,标题:“帮助”,大小:3677,字数:433},
{ns:0,标题:“在线帮助”,大小:7326,字数:380},
{ns:0,标题:“帮助台”,大小:9491,字数:1296}
]}};
for(var i=0;i}
给你一个解决方案

var data={query:{search:[
{ns:0,标题:“帮助”,大小:3677,字数:433},
{ns:0,标题:“在线帮助”,大小:7326,字数:380},
{ns:0,标题:“帮助台”,大小:9491,字数:1296}
]}};
for(data.query.search中的变量i){
console.log(data.query.search[i].title);
}
var data={query:{search:[
{ns:0,标题:“帮助”,大小:3677,字数:433},
{ns:0,标题:“在线帮助”,大小:7326,字数:380},
{ns:0,标题:“帮助台”,大小:9491,字数:1296}
]}};
var titleArray=data.query.search.map(函数(arrObj){
返回arrObj.title;
})
控制台日志(titleArray)

很有效,谢谢,我真的把代码搞乱了。我只使用for循环部分,因为数据已经“定义”了一个函数,它在获取JSON时触发。代替粘贴整个代码,解释它所做的。而不是粘贴整个代码,请考虑解释它所做的。当然,@ Mistalis…向前走会解决问题的。