javascript - 将 Django REST 框架数据转换为 javascript 数组时缺少值
问题描述
我正在尝试提取一些通过 AJAX 放置在我的 API 端点的数据。但是,当我遍历 json 对象以将其放置在我的 javascript 数组中时,似乎我缺少一些值。这就是我的意思:
我的其余 api 数据:
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept
{
"sales_rev_quota": [],
"sales_revi": [
{
"month": 1,
"sum": 123000
},
{
"month": 2,
"sum": 132000
}
],
这是我将其提取到 javascript 数组中的代码:
endpoint = 'api/chart/data'
$.ajax({
type: "GET",
url: endpoint,
success: function(data){
window.revi_sum = []
window.revi_month = []
window.sales_revi = data.sales_revi
for(i=0 ; i < sales_revi.length ; i++){
revi_sum.push(sales_revi[i].sum)
revi_month.push(moment().month(sales_revi[i].month - 1).format("MMMM"))
console.log(revi_month)
console.log(revi_sum)
}
},
error: function(error_data){
console.log('error')
console.log(error_data)
}
})
这是我的控制台中显示的内容:
["January"]
0: "January"
length: 1
__proto__: Array(0)
(index):112
[123000]
0: 123000
length: 1
__proto__: Array(0)
解决方案
您的日志被放置在 for 循环体中。将它们移到 for 循环体之外应该可以解决问题。
window.sales_revi = data.sales_revi;
for (let i = 0; i < sales_revi.length; i++) {
revi_sum.push(sales_revi[i].sum);
revi_month.push(moment().month(sales_revi[i].month - 1).format('MMMM'));
}
console.log(revi_month);
console.log(revi_sum);
推荐阅读
- javascript - jquery中的条件递增和递减运算符
- amazon-web-services - 如何通过 webhook 触发 codebuild 以获取来自 bitbucket 的 pull request denied 事件?
- android - 图像到 ByteData 的转换显示错误
- python - 在 python 中使用 fillna 时出现越界纳秒时间戳错误?
- pyspark - 石墨或grafana可以用来监控pyspark指标吗?
- javascript - 根据输入值自动添加表单输入字段
- angular - ngFor中的角度多个表单值
- svg - 如何从 SVG 中提取一个元素及其参考元素?
- mysql - 根据 MySQL (v8) 中的条件创建重复行
- microsoft-graph-api - Microsoft Bot Framework:任务模块