簡體   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