如何将AJAX循环返回的多组整数合并为单个数组输出
问题根因
你在forEach循环内部每次遍历都单独创建数组并打印,同时每次更新图表系列时都传入单元素数组,因此最终输出多个独立的单元素数组。
解决方法
在循环外层提前声明一个空数组用于收纳所有数值,遍历结束后再统一打印、更新图表即可,修改后代码如下:
$.ajax(settings).done(function(response) { $.get(settings).then(data => makeTable(data.contracts)) const makeTable = (contracts) => { const body = document.getElementById('chart'); // 提前声明空数组存储所有小时数 const allHours = [] contracts.forEach((person, index) => { person.details.forEach((entry) => { // 把当前数值推入汇总数组 allHours.push(entry.hours) }) }) // 循环结束后统一更新图表、打印 chart.updateSeries([{ name: 'Hours', data: allHours }]) console.log(allHours) } })
如果你的需求是把每个entry.hours拆分成单个数字再汇总到同一个数组,只需要把内层推入数组的逻辑改成如下即可:
// 拆分数字后把所有元素合并到汇总数组 allHours.push(...Array.from(String(entry.hours), Number))
内容的提问来源于stack exchange,提问作者user16691031
相关产品推荐
相关产品推荐

