[英]javascript storing array values
我试图获得一组数字的总和。 我将数字作为元素标签中的文本存储在数组中,然后将它们加在一起。 我的问题是它没有将数字成对插入数组中。而是将它们添加为单个整数。这是怎么回事。 也检查jsfiddle参见示例
var z = $('.impressions').text();
var x = [];
for(var i = 0; i < z.length; i++){
x.push(parseInt(z[i]));
}
console.log(x);
var total = 0;
$.each(x,function() {
total += this;
});
$('#impressTotals').append("[Total:" +total + "]");
$('#array').append("[Array:"+x+"]");
当您收到文本时,它会将所有数字都连接到字符串中。 下面一次将每个元素都推入一个。
var x = [];
$('.impressions').each( function( ) {
var z = $(this).text();
x.push(parseInt(z, 10));
})
当然,您可以在each
函数的内部建立总结,但是我这样做是为了更紧密地反映您的代码。
text()
返回所有印象元素的串联文本,您要将每个字符加在一起。
您想遍历每个印象元素,并保持连续不断的增长。 这样的事情应该工作
var sum = 0;
$('.impressions').each(function(){
sum = sum + (+$(this).text());
});
或保留原始结构(不要忘记要解析的基数参数):
var z = $('.impressions');
var x = [];
z.each(function(){
x.push(parseInt($(this).text(), 10));
});
console.log(x);
var total = 0;
$.each(x,function() {
total += this;
});
$('#impressTotals').append("[Total:" +total + "]");
$('#array').append("[Array:"+x+"]");
您正在遍历一个字符串,如果需要的话,可以使用$.map
来代替构建数组,否则只需遍历并求和:
var x = $.map($('.impressions'), function(el,i) {return parseInt($(el).text(), 10);}),
total = 0,
n = x.length;
while(n--) total += x[n] || 0;
$('#impressTotals').append("[Total:" +total + "]");
$('#array').append("[Array:"+x+"]");
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.