我有一个变量长度的JQuery对象,我需要迭代。这是对象的一个示例:
{"entities":[["Undefined Farm","e8bb6d2f-be69-49a2-9851-28cdb6f936f2",0],["Home","ba72e1cf-72dd-415e-9d6f-d5d1493b19f3",1]]}
以上是我打印JSON.stringify(my_object)
时输出的内容。
结构基本上是我称之为(在Python中)一个字典,其键是“实体”。该值是列表列表。在列表列表中,每个列表的长度为3,前两个元素是字符串,最后一个元素是一个整数,描述列表所对应的列表列表的索引。
我想迭代这个列表列表,并利用每个列表的所有三个部分来做HTML
的一些事情。
就这样我可以尽可能清楚,如果我要做这样的事情就是Python,它看起来像:
for lst in my_object["entities"]:
print lst[0], lst[1], lst[2]
我必须假设JQuery中有一些同样简单的东西。到目前为止,我已经尝试过:
for (var p in my_object["entities"]) {
alert(p):
}
但是所有这些都是整数(每个列表的最后一个元素)。
我也尝试将对象作为字符串读取,然后将其拆分,但没有打印出来:
var p = my_object["entities"]
var arr = p.split(",")
for (int i = 0; i < arr.length; i++) {
alert(arr[i];
}
答案 0 :(得分:1)
my_object.entities
是一个数组数组
您可以使用$.each()声明
$.each(my_object.entities, function(_, entity){
console.log(entity[0], entity[1], entity[2])
})
演示:Fiddle
var p = my_object["entities"]
for (var i = 0; i < p.length; i++) {
console.log(p[i][0], p[i][3], p[i][4]);
}
演示:Fiddle
答案 1 :(得分:0)
尝试:
var obj = {"entities":[["Undefined Farm","e8bb6d2f-be69-49a2-9851-28cdb6f936f2",0],["Home","ba72e1cf-72dd-415e-9d6f-d5d1493b19f3",1]]}
var len = obj.entities.length;
console.log(obj)
for(var i=0;i<len;i++){
var txt = "";
var olen = obj.entities[i].length;
for(var j=0;j<olen;j++){
txt += obj.entities[i][j];
if(j < olen){
txt += ", ";
}
}
$("body").append("<div>"+txt+"</div>");
}