如何在 for 循环中访问 json 数组字段的名称
How can I access the name of the fields of a json array inside a for loop?
我的 Json 数组如下所示:
var data =
{
"categories":
{
"category1":
{
"Name": "Maps",
"Id": 3,
"orderInList": 1
},
"category2":
{
"Name": "Books",
"Id": 2,
"orderInList": 2
}
}
};
当我编写 do console.log(data) 时,对象的"键"格式如下:
| key | value |
categories[category1][Id] "3"
如何在 for 循环中迭代它(不使用 JQuery 的 $.each),以便我可以分辨哪些键、值对是 Names、Id 或 orderInList?
工作中的杰斯菲德尔
这样的事情应该可以工作:
for (var category in data['categories']) {
for (var key in data['categories'][category]) {
var value = data['categories'][category][key];
// Now do whatever you want based on key...
switch (key) {
case 'Name':
// Whatever
break;
default:
break;
}
}
}
在任何情况下,内部循环中的键和值将保存嵌套对象的键和值,而类别将保存类别。
关于这一点的潜在令人困惑的事情是,对象属性可以像Javascript中的数组值一样访问。
因此,请考虑以下代码:
var some_object = {
a: 0
};
// These two lines do the same thing, even though some_object is not an array.
some_object.a = 1;
some_object['a'] = 1;
外部categories
对象是包含许多子对象的对象。可以使用 for...in
循环循环访问这些子对象。
for (var category in data.categories) {
// here you can access `category.Name`, `.Id`, and `.orderInList`
}
看看这个
var data = {
"categories": {
"category1": {
"Name": "Maps",
"Id": 3,
"orderInList": 1
},
"category2": {
"Name": "Books",
"Id": 2,
"orderInList": 2
}
}
};
function represent(obj) {
var reprs = [];
for (var key in obj) {
if(!obj.hasOwnProperty(key)) continue;
if (obj[key] instanceof Object) {
var result = represent(obj[key]);
for (var i = 0; i < result.length; i++) {
reprs.push("[" + key + "]" + result[i]);
}
}
else {
reprs.push("[" + key + "] = " + obj[key]);
}
}
return reprs;
}
console.log(represent(data));
//output
["[categories][category1][Name] = Maps",
"[categories][category1][Id] = 3",
"[categories][category1][orderInList] = 1",
"[categories][category2][Name] = Books",
"[categories][category2][Id] = 2",
"[categories][category2][orderInList] = 2"]
哪些键、值对是 Names、Id 或 orderInList?
我认为您可以在递归终止条件中添加代码以检查密钥是否等于 Names
Id
或orderInList
相关文章:
- 添加和删除隐藏字段数组中的值,而不提交表单
- Javascript 将 int 值转换为八位字节流数组
- 我如何让我的 var 错误消息输出是使用字段还是字段,具体取决于留空的字段数
- 如何在字段数组中更新
- 在MongoDB中,从文档中获取单个字段数组的最简单方法是什么
- 具有相同名称和不同 id 的选择字段数组
- 流星自动体形 - 禁用对象字段数组中的选择选项
- 克隆的输入字段数组的唯一 ID 值
- 如何根据输入字段数组验证禁用提交按钮
- 如何通过输入字段数组编辑成分
- 如何具有带名称的字段数组
- 如何从json字段数组动态创建一个没有jquery的表单
- 如何获取隐藏字段数组值
- 引用到另一个类的数组字段数组字段没有't刷新
- 如何从JSON文档数组中提取字段数组
- Javascript获取包含数组键的字段数组的长度
- 根据字段数组大小对文档进行分组和删除文档
- 按匹配的对象字段数对对象数组进行排序
- AngularJS过滤记录中对应字段(数组)的值
- 如何从字段数组中获取字段名