我想对API响应中的值求和。值以JSON格式存储。我的代码如下:
var returnCode;
var getUrl = "url";
returnCode = httpGet(getUrl);
var objekt = JSON.parse(returnCode);
function httpGet(url){
var response = requestSync(
'GET',
url
);
return response.body;
}
var price = 0;
for(i=0; i<30; i++)
{
price = price + objekt.data.sales[i].price;
}
price /= 30;
console.log(price); //displays NaN
console.log(objekt.data.sales[1].price); //displays correct price of one element
问题是,当我尝试输出价格时,它返回NaN,但是如果我仅显示单个元素的值,则效果很好。任何想法为什么这样做? BTW数组中有30个元素。
答案 0 :(得分:1)
实际上Json值以字符串形式出现
更改for循环
for(i=0; i<30; i++)
{
price = price + parseInt(objekt.data.sales[i].price);
}
答案 1 :(得分:0)
您确定 While i <= n
distance(i, 0) = System.Math.Min(System.Threading.Interlocked.Increment(i), i - 1)
End While
Dim j As Integer = 0
While j <= m
distance(0, j) = System.Math.Min(System.Threading.Interlocked.Increment(j), j - 1)
End While
数组包含30个条目吗?无论如何,您应该将objekt.data.sales
更改为for(i=0; i<30; i++)
。此外,我假设您在price变量中具有带小数点的数字,这在JSON响应中可能表示为strgin。使用for(i=0; i < objekt.data.sales.length; i++)
来确保要对实际数字求和。
parseFloat()