181019 TIL Lec3 할일관리 step3
Oct 19, 2018
»
1막,
TIL (Today I Learned)
Endless 오류 수정
- 오늘만 네 명한테 코드 테스트를 부탁했는데, 계속 오류가 발견되었다. 얏호!
- 계속 문제가 됐던 부분은 아래.. update error case 처리하는 부분이다.
update(updateObj) {
let answer = false;
for (const values of todo.taskList) {
if (updateObj.id === values.id) {
answer = true;
}
if (answer === true) {
const statusToUpdate = updateObj.nextstatus.trim().toLowerCase();
if (statusToUpdate === values.status) {
console.log(`[error] ${values.id}번은 이미 ${statusToUpdate}입니다.`);
answer = false;
return answer;
}
const statusOrder = ['todo', 'doing', 'done'];
if (statusOrder.indexOf(values.status) > statusOrder.indexOf(statusToUpdate)) {
console.log(`[error] ${values.status} 상태에서 ${statusToUpdate} 상태로 갈 수 없습니다.`);
answer = false;
return answer;
}
if (statusOrder.indexOf(statusToUpdate) - statusOrder.indexOf(values.status) > 1) {
console.log(`[error] 단계를 건너뛸 수 없습니다.`);
answer = false;
return answer;
}
if(answer) {return answer}
}
}
if (!answer) {
console.log(`[error] ${updateObj.id}번 아이디는 존재하지 않습니다.`);
return answer;
}
},
-
별거 아닌 거 같은데, 짜잘하게 계속 에러가 나서 넘 화난다!!
-
밤코하면서 토르코가 마지막으로 발견해준 오류는
- undo() - undo() - undo() - add () - undo() 했을 땐 add에 대한 undo()가 실행이 되어야 하는데 안됨… undo count로 할 게 아니라 뭔가.. 다른 방법을 써야할 듯
- update하고 undo했을 때 taskList에 status 업데이트가 안됨…ㅎ.. undoUpdate에서 update 이후의 객체로 taskList 갈아끼워줘야할 듯
새로 알게 된 개념
history.cacheList.push('add', Object.assign({}, task));
요렇게 하면 나중에 cacheList를 수정해도 이 때 객체 값엔 영향을 주지 않는다!
주말 todo
- 알바
- step3 오류 2개 수정
- 알고리즘 1문제