미니 프로젝트가 끝나고 새로운 팀이 배정된 후 한 주가 흘렀다.
이번 주에도 많은 일이 있었다...
원격 repo 와 로컬 repo 의 상태를 똑같이 맞춰주기, 즉 로컬 repo 에 원격 repo 작업내역 가져오기 (pull
)
로컬 repo 의 작업 내용을 저장하고 (commit
)
원격 repo 에 로컬 repo 내용을 반영 (push
)
pull
하고 로컬 repo 에서 작업하면 많은 경우 충돌을 피할 수 있어요.1단계. 누가 이 작업 할 것인지 정한다. - Issue
2단계. 각자 맡은 것을 작업한다. - Branch
3단계. 각자 작업을 프로젝트에 합친다. - merge
(경우에 따라). 작업한 내용을 리뷰하고 최종적으로 프로젝트에 반영한다. - PR 후 merge
새 브랜치 : 브랜치 이름을 적어주세요. 내가 잘 관리할 수 있게 적어주세요. 여기서는 feature/이슈번호_관리쉬운이름 형식으로 만들어줍시다.
feature/ 와 같이 작성해주면 sourcetree에 디렉토리가 생성돼서 편리하다.
브랜치를 나누는 방법은 알겠는데 내 로컬 저장소가 아니라 팀원들이랑 나누려면 어떻게 해야 할지 좀 더 연구가 필요할 듯 하다.
Please write a function called lastElement which accepts a single array argument. The function should return the last element of the array (without removing the element). If the array is empty, the function should return null.
ex)
lastElement([3,5,7]) //7
lastElement([1]) //1
lastElement([]) //null
[나의 코드]
function lastElement(array) {
if (array == []) { // 에러 발생
return null
}
return array[array.length-1]
}
[모범 답안]
function lastElement(array) {
// 배열이 배열의 형태가 맞는지, 배열의 길이가 0인지 확인
if (Array.isArray(array) && array.length === 0) {
return null
}
return array[array.length-1]
}
빈 배열을 검사할 때 array == []
가 안 되는 이유가 뭘까?
Stackoverflow에서 원인을 찾을 수 있었다.
[]는 빈 배열을 의미하지만, 결과적으로는 다른 배열(다른 메모리 주소를 가진 배열)이며, 따라서 값은 false로 반환되기 때문이다. 그러므로, []가 아니라 배열의 길이가 0인지 확인
(array.length === 0)해야 한다.
참고 글: Javascript IF conditions "array === []" and "array.length === 0"