【问题标题】:How to replace a localstorage item with a new one如何用新的替换本地存储项目
【发布时间】:2018-07-20 12:59:49
【问题描述】:

我们尝试在本地存储中设置一个新项目。但前提是它高于最后一项。我们的问题是 if 比较不起作用。有什么想法吗?

抱歉,如果我们问的是一个愚蠢的问题,但我们只是寻求帮助的初学者。非常感谢。

 saveList(){

 let newScore:any; //this is a numeric value pushed from another page
 newScore=this.newlist;


 localStorage.setItem("scores", (newScore));

 parseInt(localStorage.getItem( "score")) ;


 let highscore= parseInt( localStorage.getItem("scores"));



 if(newScore>highscore){ 

  localStorage.setItem("scores", (newScore));


}

  //let storedScores = JSON.parse(localStorage.getItem("scores"));   
}

【问题讨论】:

  • 我看到这个逻辑的方式...newScore === highscore。您将newScore 设置为localStorage,然后检索它并将其设置为highscore。它始终是相同的值。

标签: angular typescript ionic-framework local-storage


【解决方案1】:

您可以考虑使用相同的密钥替换本地项,像这样...

var boo = "my boo"
var newBoo = "my new boo"

localStorage.setItem("foo", boo);        // foo: "my boo"

// replacing...
localStorage.setItem("foo", newBoo);     // foo: "my new boo"

【讨论】:

    【解决方案2】:

    你可以使用三元运算

    saveList(){
        let newScore=this.newlist;
        let highscore= parseInt( localStorage.getItem("scores")); 
        localStorage.setItem("scores", ((newScore>highscore) ? newScore : highscore));
    }   
    

    【讨论】:

    • 代码应附有书面说明,说明如何解决 OP 中的问题。
    【解决方案3】:

    如果本地存储中没有对象,localStorage.getItem() 将返回 null,因此您可以使用它

    saveList(){
    
     let newScore:any;  
     newScore=this.newlist;
    
     let highscore= parseInt( localStorage.getItem("scores")); 
    
     if(  highscore > newScore ){
      // do nothing 
     } else  { 
        localStorage.setItem("scores", (newScore));
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2020-06-11
      • 2022-06-10
      • 2020-12-19
      • 2015-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-06-06
      • 1970-01-01
      • 2021-05-14
      相关资源
      最近更新 更多