Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.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 foreach用于JSON数组,语法_Javascript_Jquery_Json - Fatal编程技术网

Javascript foreach用于JSON数组,语法

Javascript foreach用于JSON数组,语法,javascript,jquery,json,Javascript,Jquery,Json,我的脚本从php服务器端脚本中获取一些数组 result = jQuery.parseJSON(result); 现在我想检查数组的每个变量 if (result.a!='') { something.... } if (result.b!='') { something.... } .... 有没有更好的方法让它像php中的“foreach”、“while”或smth一样快速 更新 这段代码(多亏了hvgotcodes)给了我数组中变量的值,但是我怎样才能同时得到变量的名称呢 for(va

我的脚本从php服务器端脚本中获取一些数组

result = jQuery.parseJSON(result);
现在我想检查数组的每个变量

if (result.a!='') { something.... }
if (result.b!='') { something.... }
....
有没有更好的方法让它像php中的“foreach”、“while”或smth一样快速

更新

这段代码(多亏了hvgotcodes)给了我数组中变量的值,但是我怎样才能同时得到变量的名称呢

for(var k in result) {
   alert(result[k]);
}
更新2

这就是php端的工作原理

$json = json_encode(array("a" => "test", "b" => "test",  "c" => "test", "d" => "test"));

你可以这样做

for(var k in result) {
   console.log(k, result[k]);
}
循环返回的json中的所有键并打印值。但是,如果有嵌套结构,则需要使用

typeof result[k] === "object"

以确定是否必须在嵌套对象上循环。我使用过的大多数API,开发人员都知道返回内容的结构,因此这是不必要的。然而,我认为这种期望可能并不适用于所有情况。

当然,您可以使用JS的foreach

for (var k in result) {
  something(result[k])
}
试试这个:

$.each(result,function(index, value){
    console.log('My array has at position ' + index + ', this value: ' + value);
});
您可以使用JavaScript的.forEach()方法来循环JSON

var-datesBooking=[
{“日期”:“04\/24\/2018”},
{“日期”:“04\/25\/2018”}
];
forEach(函数(数据、索引){
控制台日志(数据);

});你会想用方括号括起来。编辑:你修好了。是的,我实际上是通过在控制台中尝试来确定的这很有效。但是还有一个问题,我怎样才能得到数组中那些变量的名称?@david,它是数组还是对象文字?@david,更新了答案--
k
是键,result[k]是值。如果我没弄错的话,你可以通过使用每个JSON对象的名称访问其属性,就像访问属性一样。e、 g.
JSONObject.name
获取包含
{'name':'foo'}