【问题标题】:how to add a localstorage for my Calculator?如何为我的计算器添加本地存储?
【发布时间】:2020-02-15 05:12:12
【问题描述】:

我必须使用计算器。我得到了我需要的一切。唯一的事情是,我必须在我的结果下添加一个 LocalStorage。所以计算器每次都会添加结果,直到我删除会话。

例如:

"1+1=2," 2*2=4, 8/8=1

本地存储:2,4,1

function clear()
{
    number1.value = "";
    number2.value = "";
}
function clearresult()
{
    result.innerText = '';
}
function calc()
{
    var number1 = parseFloat(document.getElementById('number1').value);
    var number2 = parseFloat(document.getElementById('number2').value);
    var oper = document.getElementById('operators').value;
    if ( !isNaN(number1) && !isNaN(number2) )
    {
        if ( oper === '+' )
        {
            result.innerText = document.getElementById('result').value = parseFloat(number1) + parseFloat(number2);
        }
        if ( oper === '-' )
        {
            result.innerText = document.getElementById('result').value = parseFloat(number1) - parseFloat(number2);
        }
        if ( oper === '/' && number1 )
        {
            result.innerText = document.getElementById('result').value = parseFloat(number1) / parseFloat(number2);
        }
        if ( oper === '*' )
        {
            result.innerText = document.getElementById('result').value = parseFloat(number1) * parseFloat(number2);
        }
        clear();
        for (var i = 0; i < localStorage.length; i++)
        {
            localStorage.setItem('resultstorage', result.innerText);
            output.innerText = localStorage.getItem('resultstorage');
        }
    }
    else
    {
        alert("Es wurden keine Zahlen eingegeben!");
        clear();
        clearresult();
    }
}

【问题讨论】:

  • 请在问题中包含您的代码,而不是图片。有了图片,希望帮助您的人无法轻松解决问题。
  • 你好,欢迎来到stackoverflow,希望minimal reproducible example以后能帮到你

标签: javascript local-storage storage calculator


【解决方案1】:

*将您的结果存储在数组中,并将该数组存储在 localstorage 中,如下所述

let itemsArray = []
localStorage.setItem('items', JSON.stringify(itemsArray))
const data = JSON.parse(localStorage.getItem('items'))

将新结果放入数组中

itemsArray.push(input.value)
localStorage.setItem('items', JSON.stringify(itemsArray))  

从本地存储中删除数组

localStorage.clear()

【讨论】:

    【解决方案2】:

    我认为下面的解决方案将在很大程度上帮助您 - 使用默认变量可能会使代码冗长,随意删除。

    // saves the result and update DOM with it accordingly
    const saveResult = function (result, storageName = 'resultstorage') {
      let store = []
      store.push(result)
      localStorage.setItem(storageName, JSON.stringify(store))
      // update DOM with value
      getResult()
    }
    
     // using try-catch statement ensures we did not get an error
     // if - say no value is in the localStorage
     // And it can enable us to retrieve the last result in memory on page-load
     // if peradventure we exited the browser without removing the item from localStorage
     // i.e we can call getResult() without error
    
    const getResult = function (storageName = 'resultstorage') {
      let result;
      try {
        result = JSON.parse(localStorage.getItem(storageName))
        document.querySelector('#output').innerHTML = result
      } catch (err) {}
    }
    
    // we use **remove** not **clear** and the storage name
    // to avoid removing other values unintended 
    
    const removeResult = (storageName = 'resultstorage') => localStorage.removeItem(storageName)
    
    // usage
    let value = 23
    saveResult(value)
    

    【讨论】:

      猜你喜欢
      • 2018-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-31
      • 2020-11-04
      • 1970-01-01
      相关资源
      最近更新 更多