jquery:遍历json数组



我有一个ajax调用,如下所示:

$.ajax({
type: 'POST',
url: 'assets/ajax/get-results.php',
dataType: 'json',
cache: false,
data: {}, 
success: function (data) {
console.log(data);

for(var i = 0; i < data.length; i++) {
var obj = data[i];
console.log(obj);
}          
}
});

控制台.日志(数据(给我:

(2) [{…}, {…}]
0: {sum: 10, month: 'november', year: '2021', type: 'bezoeken'}
1: {sum: 50, month: 'oktober', year: '2021', type: 'bezoeken'}
length: 2
[[Prototype]]: Array(0)

log(obj(将数组分成两部分:

{sum: 10, month: 'november', year: '2021', type: 'bezoeken'}
month: "november"
sum: 10
type: "bezoeken"
year: "2021"
[[Prototype]]: Object

{sum: 50, month: 'oktober', year: '2021', type: 'bezoeken'}
month: "oktober"
sum: 50
type: "bezoeken"
year: "2021"
[[Prototype]]: Object

但我想要的是关于月份、年份和类型的foreach,因为我想知道每个月、年份和型号的总和是多少。因为这些数据应该在每月拆分的不同HTML表中查看。

HTML表格视图

看起来您的dataobjectsarray,即:

var your_data = [
{sum: 10, month: 'november', year: '2021', type: 'bezoeken'},
{sum: 50, month: 'oktober', year: '2021', type: 'bezoeken'}
];  

所以如果你想:

  • iterate超过那些objects
  • 访问这些objects中的各种properties

您可以执行以下操作:

for(var i = 0; i < your_data.length; i++) {
var year = your_data[i]['year']; 
var month= your_data[i]['month']; 
var type = your_data[i]['type'];
var sum = your_data[i]['sum'];
console.log("year: " + year + ", " + "month: " + month + ", " + "type: " + type + ", " + "sum: " + sum);
} 

上述"解决方案"假设您的data是您想要的,即您不需要再根据其他数据对年份、月份、类型和总和进行任何聚合。

关于将这些值放入表中,有很多不同的方法可以实现

下面是一个简单的例子,可以帮助您决定在解决方案中需要做什么或不需要做什么。

如果你想玩jsFiddle,这里有一个链接。

var your_data = [{
sum: 10,
month: 'november',
year: '2021',
type: 'bezoeken'
},
{
sum: 50,
month: 'oktober',
year: '2021',
type: 'bezoeken'
}
];
for (var i = 0; i < your_data.length; i++) {
var year = your_data[i]['year'];
var month = your_data[i]['month'];
var type = your_data[i]['type'];
var sum = your_data[i]['sum'];
var row_html = `
<tr>
<td>${year}</td>
<td>${month}</td>
<td>${type}</td>
<td>${sum}</td>
</tr>
`;
$("#your_table").append(row_html);
}
#my_table {
border: 1px solid;
}
th,
td {
border: 1px solid #000000;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table id="your_table">
<thead>
<tr>
<th>Year</th>
<th>Month</th>
<th>Type</th>
<th>Sum</th>
</tr>
</thead>
<tbody>
</tbody>
</table>

感谢用户1063287,我的问题解决了。

for(var i = 0; i < your_data.length; i++) {
var year = your_data[i]['year']; 
var month= your_data[i]['month']; 
var type = your_data[i]['type'];
var sum = your_data[i]['sum'];
console.log("year: " + year + ", " + "month: " + month + ", " + "type: " + 
type + ", " + "sum: " + sum);
}

最新更新