【问题标题】:Add sum the values stored in HTML5 localstorage将存储在 HTML5 localstorage 中的值相加
【发布时间】:2020-12-08 22:42:25
【问题描述】:

我有一个 ionic-angular 应用程序的本地存储中存储的数据列表,如下所示:

Age1 3.5
Age2 4

现在我想添加数字(结果为 7.5)并显示。

我正在尝试在下面的代码中使用他,但它不起作用

for (let i = 0; i < localStorage.length; i++){        
            let key = localStorage.key(i);
            console.log(localStorage.getItem(key));
            this.result +=  JSON.parse(localStorage.getItem(key));
        }

请提出我做错的地方。

【问题讨论】:

  • 你在localstorage中保存的对象是什么?我是说结构?
  • 在 ionic 5 和 angular 7+ 中不需要 JSON.parse()
  • this.storage.get("key").then((value) => { this.temp = value});
  • 我有多个页面。从每一页我都在保存差异。关键和差异。我在原始问题中提到的价值。

标签: html angular ionic-framework local-storage angular2-localstorage


【解决方案1】:

请尝试下面的代码,我刚刚删除了 JSON 解析,因为这不是 json 数据,并用空格分割以获得浮点数。

result=0;
for (let i = 0; i < localStorage.length; i++){        
            let key = localStorage.key(i);
            console.log(localStorage.getItem(key));
            data=localStorage.getItem(key).split(" ");
            result +=  parseFloat(data[data.length-1]);}

【讨论】:

  • 我试过这个,但它是附加而不是添加数字。价值来自undefined3.54
  • @BongaigaonGapps 我已更新代码,请立即查看。
【解决方案2】:

使用parseFloat(value) 代替JSON.parse。这应该可以正常工作。

【讨论】:

  • NaN 因为您没有通过localStorage.getItem(key) 获得浮动可转换价值。确保您收到一个浮点可转换字符串并使用parseFloat()。要调试,而不是循环,请使用单个值,对其进行转换然后找出。您可能有一些字母数字值,进行适当的拆分,或将console.log 的输出发布为console.log(localStorage.getItem(key));
猜你喜欢
  • 2011-10-04
  • 2018-08-13
  • 2023-03-08
  • 2011-03-06
  • 1970-01-01
相关资源
最近更新 更多