JSON.parse() 를 통해 문자열을 진짜 배열로(배열같은 객체) 바꿔주었다.
그럼 이제 이 배열(todo리스트 하나하나)을 각각 다루고싶은데
그 방법은 무엇?
인자로 주어진 함수를 배열의 요소 각각에 수행하는 것.
map() 과 달리 수정된 배열을 리턴하지 않는다.
function sayHello(item) {
console.log("This is the turn of", item);
}
// greetings에서 만든 savedUsername과 비슷
const savedToDos = localStorage.getItem(TODOS_KEY);
if (savedToDos !== null) {
const parsedToDos = JSON.parse(savedToDos);
console.log(parsedToDos);
// null을 쓴 이유 : localStorage에 아무값도 없을 조건
parsedToDos.forEach(sayHello);
}
// (3) ['a', 'b', 'c']
// Hello 가 3번 출력
// forEach 가 각각의 item에 대해 sayHello를 실행시킨다.
// 인자 item의 자리에 각각 a, b, c 가 대입돼서 실행되는 것.
더 간단하게 줄이고싶다? 화살표함수를 사용하면 된다.
const savedToDos = localStorage.getItem(TODOS_KEY);
if (savedToDos !== null) {
const parsedToDos = JSON.parse(savedToDos);
console.log(parsedToDos);
parsedToDos.forEach((item)=>console.log("This is the turn of", item))
}
// 화살표함수를 쓰면 함수 선언 안해줘도 되고, 더욱 간단해진다.