簡體   English   中英

JavaScript值未在console.log中求和

[英]JavaScript values not being sum in console.log

我想對我從跨度中獲取的用戶值求和。 這是我的JS代碼:

var attackerStr = document.getElementById('attackerStr').innerText;
var attackerDex = document.getElementById('attackerDex').innerText;
var attackerVit = document.getElementById('attackerVit').innerText;
var attackerIntel = document.getElementById('attackerIntel').innerText;

var userStr = document.getElementById('userStr').innerText;
var userDex = document.getElementById('userDex').innerText;
var userVit = document.getElementById('userVit').innerText;
var userIntel = document.getElementById('userIntel').innerText;

console.log((attackerStr - userStr)+(attackerDex - userDex)+(attackerVit - userVit)+attackerIntel - userIntel);

該值被減去但未求和。 該數字僅出現在另一個數字旁邊,如下所示: 213075

對所有像這樣的字段都使用parseInt函數

var attackerStr = parseInt(document.getElementById('attackerStr').innerText);

使用適用的parseIntparseFloat

您應該這樣做:

var attackerDex = parseInt(document.getElementById('attackerDex').innerText);

對於所有變量。

您在這里有兩個問題。 首先,您應該知道,將返回什么類型的值

document.getElementById('attackerStr').innerText;

如果選中,它將為字符串,並且應為整數(數字,十進制等)。 因此,第一點是創建函數以提取值並將其解析為期望的類型。 像這樣:

function getInt(id){
var rawData = document.getElementById(id);
return parseInt(rawData,10);
}

第二個問題是關於使用隱式操作。 您應該在這里閱讀有關此內容的更多信息。

為了確保您已經准備好,請嘗試對行進行回答,以及原因:

var v1 = {}+[];
var v2 = []+[];

希望這可以幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM