181023 TIL Lec3 할일관리 step3
Oct 23, 2018
»
1막,
TIL (Today I Learned)
할일관리 step3 수정
- if문은 최대한 빨리 탈출할 수 있도록 로직 짜기
//수정 전
remove(id) {
if (errorCheck.remove(id)) {
//수정 후
remove(id) {
if (!errorCheck.remove(id)) return;
- for-of
자바스크립트에서 for-of를 쓸 수 있는 타입은 무엇인지 한번 찾아서 공부해두세요.
” The [for…of] creates a loop iterating over iterable objects (including the built-in String, Array, e.g. the Array-like arguments or NodeList objects, TypedArray, Map and Set, and user-defined iterables) “
- for-of 안에서 if 대신 filter
// 수정 전
remove(id) {
if (errorCheck.remove(id)) {
for (const values of this.taskList) {
if (values.id === id.id) {
// 수정 후
const taskToRemove = this.taskList.filter(values => values.id === id.id);
- shift() 똑같은코드를 여러번 쓰는 것보다, while문 등으로 cacheList의 길이가 주어진 값(3)이 될때까지 반복적으로 shift호출하는 게 좀더 똑똑한 표현같아요.
// 수정 전
cacheListCheck(func, task) {
if (this.cacheList.length > 5) {
this.cacheList.shift();
this.cacheList.shift();
// 수정 후
fixArrLength(arr) {
while (arr.length > 6) {
arr.shift();
}
}
- object.assign({})
undo나 redo를 통해 task의 값이 바뀌어도 처음에 입력한 데이터 값에 영향을 주지 않음
- 중복 제거
// 수정 전
this.undoCacheList.pop();
this.undoCacheList.pop();
// 수정 후
removeOldTask(arr) {
arr.pop();
arr.pop();
},
- for-if-if 중첩 제거
// 수정 전
undoUpdate(arg) {
for (const values of todo.taskList) {
// 수정 후
const taskToUndoUpdate = todo.taskList.filter(values => values.id === arg.id);