作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我目前正在从以下示例 URL 中获取一个 json 对象: https://demo0046512.mockable.io/stream/anycontent
我的目的是遍历每个数组(“区域”)并创建一个 switch-case,它将根据 type
字段调用不同的方法
我尝试查看其他类似案例 Iterating over JSON in React但我仍在努力正确地迭代 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>
)
}
}
显示输出只是为了查看它是否被正确迭代,所以我可以继续切换案例,但显然有些地方不对。
最佳答案
您需要遍历区域对象键,然后进入 zone1 和 zone2 数组以收集不同类型,然后删除重复项。
var jsonObj = {
"zones":{
"zone1":[
{"type": "text", "url": "http://pastebin.com/raw/1U5vhVzH", "displaytime": "15"},
{"type": "image", "url": "http://i.imgur.com/FuD18KJ.jpg", "displaytime": "10"},
{"type": "video", "url": "http://techslides.com/demos/sample-videos/small.mp4" }
],
"zone2":[
{"type": "text", "url": "http://pastebin.com/raw/1U5vhVzH", "displaytime": "16"},
{"type": "image", "url": "http://i.imgur.com/FuD18KJ.jpg", "displaytime": "11"},
{"type": "video", "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(obj.type)
})
})
arr = arr.filter((x, i, a) => a.indexOf(x) == i) // remove duplicate entries
console.log(arr);
关于javascript - REACT - 遍历具有多个数组的 Json 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49338650/
我是一名优秀的程序员,十分优秀!