IndexedDB中的算术运算

时间:2015-10-11 11:01:33

标签: javascript indexeddb

我想要你的帮助。我在做大学作业。我正在研究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);					
	
                    };}

1 个答案:

答案 0 :(得分:1)

对于那些访问的人来说,通过评论和以下解决是解决方案:

  

通常,数据以String对象的形式从IDB中检索,因此您的   “+”运算符是连接而不是添加。所以,先转换   你的字符串编号然后执行添加。转换   请参阅here