我从API中检索一些数据,并将其添加为:
if (jsontext == '[]') { return false } else { var newTr = ''; for (var i = 0; i < json.length; i++) { newTr += (' / ' + json[i].date + ' ' + json[i].price); } console.log(newTr); }
这给了我一个巨大的结果列表:
/ 07-09-2012 72.60 / 11-09-2012 194.98 / 03-09-2012 94.82 / 04-09-2012 187.56 / 31-10-2012 72 / 18-09-2012 204.75 / 26-09-2012 243.73 / 14-09-2012 86.40 / 20-09-2012 91.63 / 28-09-2012 96.56 / 01-09-2012 94.62 / 17-09-2012 94.86 / 17-09-2012 83.25 / 12-09-2012 94.85 / 18 -09-2012 94.86 / 18-09-2012 68.74 / 21-09-2012 94.86 / 21-09-2012 94.86 / 24-09-2012 144.23 / 28-09-2012 92.77 / 30-09-2012 92.77 / 28- 09-2012 92.77 / 13-09-2012 151.12 / 03-09-2012 125.80 / 05-09-2012 92.61 / 05-09-2012 95.54 / 12-09-2012 94.59 / 12-09-2012 94.59 / 13-09 -2012 125.83 / 18-09-2012 109.38
并继续前进.
我该如何计算09月份的定价总和?
日期格式为dd-mm-yyyy.
解决方法
我假设你拥有的是一个像下面的字符串,
"/ 07-09-2012 72.60 / 11-09-2012 194.98 / 03-09-2012 94.82 / 04-09-2012 187.56 / 31-10-2012 72 / 18-09-2012 204.75 / 26-09-2012 243.73 / 14-09-2012 86.40 / 20-09-2012 91.63 / 28-09-2012 96.56 / 01-09-2012 94.62 / 17-09-2012 94.86 / 17-09-2012 83.25 / 12-09-2012 94.85 / 18-09-2012 94.86 / 18-09-2012 68.74 / 21-09-2012 94.86 / 21-09-2012 94.86 / 24-09-2012 144.23 / 28-09-2012 92.77 / 30-09-2012 92.77 / 28-09-2012 92.77 / 13-09-2012 151.12 / 03-09-2012 125.80 / 05-09-2012 92.61 / 05-09-2012 95.54 / 12-09-2012 94.59 / 12-09-2012 94.59 / 13-09-2012 125.83 / 18-09-2012 109.38"
如果是这种情况,那么您需要解析字符串以按月计算总和.
完整代码:
var resultArr = result.split('/'); var results = {}; //sum by month for (var i = 0; i < resultArr.length; i++) { if ( resultArr[i].length >= 11) { //it has date var resultTkn = resultArr[i].split(' '); if (resultTkn[1].length == 10) { //it is a date var date = resultTkn[1].split('-'); var sum = 0; if (results.hasOwnProperty(date[1])) { sum = results[date[1]]; } sum += parseFloat(resultTkn[2]); results[date[1]] = sum; } } }
现在,您可以使用结果对象按月访问总和.结果[“09”]返回3305.93