[英]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.