Как добавить локальное хранилище для моего калькулятора? - PullRequest
0 голосов
/ 18 октября 2019

Я должен работать на калькуляторе. Я получил все, что мне нужно. Единственное, я должен добавить 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();
    }
}

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

Я думаю, что приведенное ниже решение поможет вам - использование переменных по умолчанию может сделать код многословным, удалить по желанию.

// 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)
0 голосов
/ 18 октября 2019

* сохраните ваш результат в массиве и сохраните этот массив в локальном хранилище, как указано ниже

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()
...