我想要你的帮助。我在做大学作业。我正在研究IndexedDB。我想做一些补充,使用来自我的indexedDB作为对象的数据进行减法。我正在从IndexedDB中检索值并将其保存以供将来用于应用算术运算。
当我对数据求和时,它会连接数字。
例如:
总计+ =价格[指数] .name; //在价格数组中有数据,如100,50,20 我的输出应该是这些值的总和。但我得到的输出就像这个“1005020”
我不知道如何添加这些数据。这是我的代码。
function GetData(){
var output = document.getElementById("printOutput");
var product=[];
var price=[];
var person=[];
var index=0;
var total = 0;
var transaction = db.transaction("accounts", IDBTransaction.READ_WRITE);
var objectStore = transaction.objectStore("accounts");
var request = objectStore.openCursor();
request.onsuccess = function(evt) {
var cursor = evt.target.result;
if(cursor)
{
product.push({name: cursor.value.pType});
price.push({name: cursor.value.pPrice});
person.push({name: cursor.value.personID});
cursor.continue();
}
while(product.length!=index)
{
if(person[index].name==1){
var element = document.createElement("p");
element.textContent = product[index].name+"\t"+price[index].name;
output.appendChild(element);
total = total + price[index].name;
}
index++;
}
var sum = document.createElement("p");
sum.textContent = "Total Amount = " + total;
output.appendChild(sum);
};}
答案 0 :(得分:1)
对于那些访问的人来说,通过评论和以下解决是解决方案:
通常,数据以String对象的形式从IDB中检索,因此您的 “+”运算符是连接而不是添加。所以,先转换 你的字符串编号然后执行添加。转换 请参阅here