javascript - JSON 循环数组,它是一个对象的值
问题描述
我有一个{}
带有一堆值的 JavaScript 对象,其中一个值是一个数组[]
。转换为 JSON 后将如下所示。
{
"header-name": "",
"header-role": "",
"header-phone": "",
"header-website": "",
"header-email": "",
"header-location": "",
"exp-one": "ssfsdf",
"exp-two": "sdfsdf",
"exp-three": "",
"exp-four": "",
"exp-five": "",
"exp-six": "",
"exp-sub": [
"1",
"2",
"3",
"4",
"5"
]
}
我可以使用循环遍历 JSONvar result = $.parseJSON(data); $.each(result, function(k, v) {});
我想要做的也是循环位于对象中的那个数组,"exp-sub"
比如。
$.each(result, function(k, v) {
if (v == "exp-sub"){
$.each(k, function(key, val) {
//loop over array, this doesn't work though
}
}
});
也尝试了 for 循环,但也不起作用,任何帮助将不胜感激。
解决方案
实际上k
是关键,即exp-sub所以你必须比较k
和迭代v
var result={"header-name":"","header-role":"","header-phone":"","header-website":"","header-email":"","header-location":"","exp-one":"ssfsdf","exp-two":"sdfsdf","exp-three":"","exp-four":"","exp-five":"","exp-six":"","exp-sub":["1","2","3","4","5"]}
$.each(result, function(k, v) {
//console.log(k, v)
if (k == "exp-sub"){
$.each(v, function(index, val) {
console.log(val)
});
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
推荐阅读
- linux - 如何让一个while循环等待用户输入?
- python - PyQt QAbstractTableModel 复选框不可选中
- angular - 如何在 Angular 5/4 中为不同类型的用户使用不同的导航栏?
- c# - 从另一个 VR Oculus 应用启动 VR Oculus 应用
- ruby-on-rails - 运行 db:create 后出现奇怪的 postgres 错误
- ruby-on-rails - Shopify ruby on rails 应用程序无法通过身份验证
- xml - 通配符或字符串模式如何与 XSLTv1.0 匹配
- java - 带有 goDaddy 证书的 Tomcat8.5 SSL 连接器
- laravel - 数据透视表中与 fk 的多对多关系
- ruby-on-rails - Axios Post 200 响应后不返回数据