我想通过在循环结束时进行比较来打印'sum'的唯一值,但是我看到每次它执行比较时它已经移动到下一个元素,因此当它比较两个值时,它们总是相同的。有没有另一种方法来做到这一点?循环通过Json对象
$(document).ready(function(){
$.getJSON('XML.php', function(data) {
JSON.stringify(data);
var prevCardCode = '';
$.each(data, function(index, element){
var prevCardCode = element['CardCode'];
if (!(element['CardCode'] == prevCardCode)) {
var sum = element['payment_sum'] + '<br/>';
$('#showdata').append(sum);
}
alert(element['CardCode'] + 'compare' + prevCardCode);
});
});
});
工作正常!谢谢!你能解释为什么那样吗? – MG1
我以为我解释得很好。基本上,如果包含'var'关键字,那么您正在'$ .each'范围内创建一个新变量,而不是使用父范围中的现有变量。此外,您需要在为下一次迭代覆盖它之前比较该值。 –