# Day 17 - Web Storaage
## [Exercise:Solutions](#exercise-solutions)
- ### [Exercise:Level 1](#exercises-level-1)
- ### [Exercise:Level 2](#exercises-level-2)
- ### [Exercise:Level 3](#exercises-level-3)
#### [Home](../README.md) | [<< Day 16](./16_day_JSON.md) | [Day 18 >>](./18_day_promise.md)
## Exercise Solutions
### Exercises: Level 1
1. Store you first name, last name, age, country, city in your browser localStorage.
```js
// app.js
let firstName = "nevzat"
let lasrName="Atalay"
let age= 25
let city ="BİTLİS"
let country = "Turkey"
localStorage.setItem("name",JSON.stringify(firstName))
localStorage.setItem("lastName",JSON.stringify(lasrName))
localStorage.setItem("age",JSON.stringify(age))
localStorage.setItem("city",JSON.stringify(city))
localStorage.setItem("country",JSON.stringify(country))
```
### Exercises: Level 2
1. Create a student object. The student object will have first name, last name, age, skills, country, enrolled keys and values for the keys. Store the student object in your browser localStorage.
```js
// app.js
let student = {
firstName:"Nevzat",
lastName:"Atalay",
age:25,
skills:["HTML","CSS","JavaScript"],
country:"Turkey",
}
localStorage.setItem("student",JSON.stringify(student))
```
### Exercises: Level 3
1. Create an object called personAccount. It has firstname, lastname, incomes, expenses properties and it has totalIncome, totalExpense, accountInfo,addIncome, addExpense and accountBalance methods. Incomes is a set of incomes and its description and expenses is also a set of expenses and its description.
```js
// ap.js
class PersonAccount {
constructor(name, surname, incomes, expenses) {
this.name = name;
this.surname = surname;
this.incomes = incomes;
this.expenses = expenses;
}
totalIncome() {
return this.incomes.reduce((a, b) => a + b, 0);
}
totalExpense() {
return this.expenses.reduce((a, b) => a + b, 0);
}
accountInfo() {
return `${this.name} ${this.surname} has a total income of ${this.totalIncome()} and a total expense of ${this.totalExpense()}.`;
}
addIncome(income) {
this.incomes.push(income);
}
addExpense(expense) {
this.expenses.push(expense);
}
accountBalance() {
return this.totalIncome() - this.totalExpense();
}
}
const person = new PersonAccount('Nevzat', 'Atalay', [1000, 2000, 3000], [500, 1000]);
console.log(person.accountInfo());
console.log(person.accountBalance()); // 4500
```
#### [Home](../README.md) | [<< Day 16](./16_day_JSON.md) | [Day 18 >>](./18_day_promise.md)