我已经习惯了C#而不是JS,所以如果我无知,那我就会懈怠但是我想通过API.ai发送的列表进行foreach循环,我不知道它是否是一个固定长度数组或List,或者如果在Javascript中两者之间甚至有区别。
我将如何做到这一点?
答案 0 :(得分:1)
如果我错了,请纠正我,但JavaScript没有类似于C#的List / Array数据类型。然而,有阵列和对象,你的API调用很可能会返回一个对象数组,但我从来没有遇到过API.ai所以我不会伸手去拿它。
对象采用JSON格式,您可以使用阵列上的.length()
函数检查数组中有多少个对象。
来自API的样本响应,例如:
[{
title : "Title 1",
context : "Context 1"
},
{
title : "Title 2",
context : "Context 2"
}]
你可以做一个简单的for循环:
for(var i = 0; i < response.length(); i++){
response[i] // Object
}
请注意我离开response[i]
的方式,然后您可以访问给定对象的属性,例如response[i].title
或response[i].context
。
旁注&amp;作为一个抬头,您可能需要在循环之前将返回的值解析为JSON,这一切都取决于您的代码。
编辑值得注意:
响应可能包含一个已分配对象数组的属性,该对象看起来类似于:
[{
title : "Title 1",
context : "Context 1",
prop : [{ val : "val 1", name : "val 1" }]
},
{
title : "Title 2",
context : "Context 2",
prop : [{ val : "val 2", name : "val 2" }]
}]
迭代内部数组(prop字段)对上面的for循环的简单修改:
for(var i = 0; i < response.length(); i++){
for(var j = 0; j < response[i].prop.length(); j++){
response[i].prop[j] // Inner Object
}
}