Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.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-在多维数组中查找多个值_Javascript_Arrays_Loops_Object_Multidimensional Array - Fatal编程技术网

Javascript-在多维数组中查找多个值

Javascript-在多维数组中查找多个值,javascript,arrays,loops,object,multidimensional-array,Javascript,Arrays,Loops,Object,Multidimensional Array,我需要通过一些JSON来获取一些ID。 JSON如下所示: var carousel = [ { "acf": { "content": [ { "acf_fc_layout": "custom", "content": "Some text" }, { "acf_fc_layout": "exhibition", "exhibition": 2

我需要通过一些JSON来获取一些ID。 JSON如下所示:

var carousel = [
  {
    "acf": {
      "content": [
        {
          "acf_fc_layout": "custom",
          "content": "Some text"
        },
        {
          "acf_fc_layout": "exhibition",
          "exhibition": 2594
        },
        {
          "acf_fc_layout": "exhibition",
          "exhibition": 1234
        }
      ]
    },
  }
]
对于每个
内容
其中
acf_fc_layout==展览
我必须获取展览的值(ID),以便可以使用它获取进一步的数据。正如您所看到的,还有多个展览ID

我在这里的困惑是对象和数组都存在,而且它们是嵌套的。我用jQuery做了一些类似的工作,但这次不可能了。我不认为我需要IE8支持,但仍然觉得这很棘手。

carousel[0].acf.content.forEach(function (item) {
  if (item["acf_fc_layout"] === "exhibition") {
    // do some stuff
    // id for exhibition placed in item["exhibition"] 
  }
});
$(旋转木马)。每个(功能(i,el){
$(el.acf.content)。每个(函数(i,el){
如果(el.acf\U fc\U布局===‘展览’){
$('', {
文本:el.展览
}).appendTo($(“#results”);
}
});
});

如果
acf
有许多
内容
,则需要运行额外的循环,并且acf必须是对象数组。

对于当前结构,需要使用foreach并检查值

 var carousel = [
  {
    "acf": {
      "content": [
        {
          "acf_fc_layout": "custom",
          "content": "Some text"
        },
        {
          "acf_fc_layout": "exhibition",
          "exhibition": 2594
        },
        {
          "acf_fc_layout": "exhibition",
          "exhibition": 1234
        }
      ]
    },
  }
];

$.each(carousel[0].acf.content,function (i,v){
    if(v.acf_fc_layout == "exhibition")
        $(".result").append(v.exhibition+"<br>");
    });
var carousel=[
{
“acf”:{
“内容”:[
{
“acf_fc_布局”:“自定义”,
“内容”:“一些文本”
},
{
“acf_fc_布局”:“展览”,
“展览”:2594
},
{
“acf_fc_布局”:“展览”,
“展览”:1234
}
]
},
}
];
$.each(转盘[0].acf.content,function(i,v){
if(v.acf\U fc\U布局==“展览”)
$(“.result”)。追加(v.experience+”
”; });

如果您的JSON看起来就像您所说的,那么这是一个简单的解决方案:

var i;
for (i = 0; i < carousel[0].acf.content.length; i++) {
    if (carousel[0].acf.content[i].acf_fc_layout === "exhibition") {
        // do something with carousel[0].acf.content[i].exhibition
    }
}
vari;
对于(i=0;i
或者,如果JSON中有更多的内容,这可能与此相关:

var i, j;
for (i = 0; i < carousel.length; i++) {
    if (typeof carousel[i].acf != 'undefined' && typeof carousel[i].acf.content != 'undefined') {
        for (j = 0; j < carousel[i].acf.content.length; j++) {
            if (carousel[i].acf.content[j].acf_fc_layout === "exhibition") {
                // do something with carousel[i].acf.content[j].exhibition
            }
        }
    }
}
vari,j;
对于(i=0;i
啊,很简单。在IE9中工作?我想?两者都是,然后说是,
forEach
从IE9.for开始工作(var I=0;Iacf是一个关联数组。关联数组不能有多个同名键,因此它不能有“多个
内容
”,acf必须是对象数组。“我的评论的关键词。这是小费。
var i, j;
for (i = 0; i < carousel.length; i++) {
    if (typeof carousel[i].acf != 'undefined' && typeof carousel[i].acf.content != 'undefined') {
        for (j = 0; j < carousel[i].acf.content.length; j++) {
            if (carousel[i].acf.content[j].acf_fc_layout === "exhibition") {
                // do something with carousel[i].acf.content[j].exhibition
            }
        }
    }
}