我需要将每个页面的高度推到一个数组中。然而/我的问题是,我需要不是推动值本身,而是推动值的总计。
这是我到目前为止所做的:
var heights = [0];
$('.page').each(function(i) {
heights.push($(this).height());
});
结果如下所示:[0, 2000, 1000, 3000, 1500]
,这是页面的高度,
但是我需要这样的东西:[0, 2000, 3000, 6000, 7500]
,这是页面高度增加的总计。
答案 0 :(得分:3)
var heights = [0];
$('.page').each(function(i) {
heights.push(
$(this).height() + (heights[i] || 0)
);
});
修改强>
编辑版现在根据提问者的要求合并了前导0
数组成员。
答案 1 :(得分:2)
在您拥有的代码后添加:
var total = 0;
for (i=1 ; i < heights.length ; ++i) {
total += heights[i];
heights[i] = total;
}
答案 2 :(得分:2)
你可以在一个循环中完成:
var heights = [];
var total = 0;
$('.page').each(function(i) {
total += $(this).height();
heights.push(total);
});
或者...如果你想要它超级干净:
var heights = [];
var total = 0;
$('.page').each((function(){
var total = 0;
return function(i) {
total += $(this).height();
heights.push(total);
};
}()));
第二个版本避免使用total
变量污染任何范围。