Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.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 REACT-使用多个数组遍历Json对象_Javascript_Json_Reactjs_React Native - Fatal编程技术网

Javascript REACT-使用多个数组遍历Json对象

Javascript REACT-使用多个数组遍历Json对象,javascript,json,reactjs,react-native,Javascript,Json,Reactjs,React Native,我当前正在从以下示例URL获取json对象: 我的目的是通过每个数组(“区域”)进行迭代,并生成一个切换案例,该案例将根据类型字段调用不同的方法 我试着看另一个类似的案例 但是我仍然在努力通过json对象正确地进行迭代,我没有正确地做什么 以下是迭代代码: interpretJson(jsonObj){ if(jsonObj){ var arr = []; Object.keys(jsonObj).map((zone, index) => {

我当前正在从以下示例URL获取json对象:

我的目的是通过每个数组(“区域”)进行迭代,并生成一个切换案例,该案例将根据
类型
字段调用不同的方法

我试着看另一个类似的案例 但是我仍然在努力通过json对象正确地进行迭代,我没有正确地做什么

以下是迭代代码:

interpretJson(jsonObj){

    if(jsonObj){    
      var arr = [];
      Object.keys(jsonObj).map((zone, index) => {
          arr.push(jsonObj[zone]);
          }) 
      return(
        <div>
        <p> interpretJson output: </p>
          <ul>
            {arr.map(item => {
                item.type
              }) 
            }
          </ul>
        </div>  
      )
    }
  }
解释JSON(jsonObj){ if(jsonObj){ var-arr=[]; Object.keys(jsonObj).map((区域,索引)=>{ arr.push(jsonObj[区域]); }) 返回( 解释JSON输出:

    {arr.map(项=>{ item.type }) }
) } }

显示输出只是为了查看它是否被正确迭代,因此我可以继续切换,但显然有些地方不正确。

您需要循环区域对象键,然后进入zone1和zone2数组以收集不同的类型,然后删除重复项

var jsonObj={
“区域”:{
“1区”:[
{“类型”:“文本”,“url”:http://pastebin.com/raw/1U5vhVzH,“displaytime”:“15”},
{“类型”:“图像”,“url”:http://i.imgur.com/FuD18KJ.jpg,“displaytime”:“10”},
{“类型”:“视频”,“url”:http://techslides.com/demos/sample-videos/small.mp4" }
],
“2区”:[
{“类型”:“文本”,“url”:http://pastebin.com/raw/1U5vhVzH,“displaytime”:“16”},
{“类型”:“图像”,“url”:http://i.imgur.com/FuD18KJ.jpg,“displaytime”:“11”},
{“类型”:“视频”,“url”:http://techslides.com/demos/sample-videos/small.mp4" }
]
}
}
var-arr=[];
Object.keys(jsonObj.zones).forEach((zone,index)=>{
jsonObj.zones[zone].forEach((obj,idx)=>{
arr.push(对象类型)
})
})
arr=arr.filter((x,i,a)=>a.indexOf(x)==i)//删除重复条目

控制台日志(arr)因为您没有返回地图正文中的任何内容,所以请使用以下命令:
{arr.map(item=>
  • item.type
  • )}
    尝试了该操作,并且
  • {item.type}
  • 但它仍然没有打印类型…这完全正确,先生。所以我的问题是,我用jsonObj[zone]一次传递一组内部对象,而不是一个接一个地传递?很高兴它对您有所帮助