繁体   English   中英

javascript存储数组值

[英]javascript storing array values

我试图获得一组数字的总和。 我将数字作为元素标签中的文本存储在数组中,然后将它们加在一起。 我的问题是它没有将数字成对插入数组中。而是将它们添加为单个整数。这是怎么回事。 也检查jsfiddle参见示例

http://jsfiddle.net/Wd78j/

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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM