抱歉我的英语不好。 我们如何检查 jQuery.each()循环的最后一次迭代。我想检查循环的迭代是否是最后一次。我的循环正在迭代来自ajax成功的对象。
这是我的代码
jQuery.ajax({
url: "<?php echo $this->getUrl('xs4arabia/index/getFetchrOrderLogs/'); ?>",
type: "GET",
data: {tracking_id: tracking_id},
dataType: "json",
success: function (data) {
jQuery.each(data, function (key, value) {
console.log(value);
},
})
答案 0 :(得分:4)
传递给each()
处理函数的第一个参数是数组中当前元素的索引(尽管您当前将其命名为key
)。您可以将其与数组的长度进行比较,以找出您当前的位置:
$.each(data, function(index, value) {
var isLastElement = index == data.length -1;
if (isLastElement) {
console.log('last item')
}
console.log(value);
},
答案 1 :(得分:1)
您可以检查数据的长度并将其与密钥进行比较(请注意,第一个密钥为0)
jQuery.ajax({
url: "<?php echo $this->getUrl('xs4arabia/index/getFetchrOrderLogs/'); ?>",
type: "GET",
data: {tracking_id: tracking_id},
dataType: "json",
success: function (data) {
var arrLength = data.length;
jQuery.each(data, function (key, value) {
if( key == arrLength - 1 ) {
/* this is the last one */
}
console.log(value);
},
})
答案 2 :(得分:1)
每个函数的第一个参数等于索引。
因此,您可以将索引与数据长度进行比较。
使用div标签查看此示例:
$(document).ready(function(){
var len = $('div').length;
$('div').each(function(index){
if (index === (len - 1))
alert('Last index');
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<div>1</div>
<div>2</div>
<div>3</div>
这是使用包含数组属性的对象的另一个示例:
var data = {
myArray:[1,2,3]
}
$(document).ready(function(){
var len = data.myArray.length;
$.each(data.myArray,function(index,value){
if (index === (len - 1))
alert(index);
});
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
答案 3 :(得分:0)
每个都传递到您的功能键和值。根据数据长度检查密钥(索引)。
if (key == data.length- 1) {
console.log('Last field');
}
答案 4 :(得分:0)
在其他答案正确的同时,我个人最喜欢这种方法,只需编写您自己的计数器即可:
df.groupby('NAME').agg(
lambda grp: [grp.loc[grp[col] > 0, 'FATAL#'].sum() if col != 'INJURY#' else grp[col].sum()
for col in grp if col != 'FATAL#'])
>>>df
NAME FATAL# INJURY# ALCOHOL CELL
A 11 2 6 0
B 10 4 3 5