ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • JavaScript : let 을 통한, 선언 / 할당에 익숙해지자
    캡틴 코딩일기/javascript 2020. 2. 2. 22:39
    728x90
    반응형

    JavaScript : let 을 통한, 선언 / 할당에 익숙해지자

     

    ** 상/하단의 광고 클릭 한 번이, 꾸준한 창작활동에 큰 도움이 됩니다 :) **

     

    JavaScript를 공부하고 있는 곳에서 토요일마다 모 공유오피스로 찾아가서,

    한주동안 공부했던 내용들 중에 궁금했던 부분들을 직접 엔지니어분들에게 문의하고,

    주어진 문제풀이의 방향 또는 풀이에 참고할 수 있는 사이트 들에 대해 조언을 구하는.

     

    이 시간만큼은 학구열을 불태우며 집중할 수 있는 '오피스 아워'라는 세션에 다녀왔다.

     

    처음 다녀오던 날들에 비해, 궁금한 내용들을 미리 정리하거나,

    당일 학습중에도 곧잘 물어보게 되었다고는 하나 아직도 좀 어색하다.

     

    어색함의 이유는 두 가지 정도.

     

    1) 알고 있는 내용인데, 나 편하자고 쉽게 물어보는건 아닐까?

      (학원에서 표방하는 자기주도학습에 반항..)

    2) 뭘 물어봐야 될지 모르겠다.

       (자괴의 수준. 질문도 잘 하라고 하던데.)

     

    한 때는 오피스아워를 마치고 집에 오는 길이 허공에 해대는 이불킥마냥 아쉬움이 한가득이었다.

     

    시간이 조금 지났고, 워낙 기초적인 내용인 'let' 을 통한 선언/할당에 대한 깨달음을 기록으로 남기려고 한다.


     

    함수에서 다루어야 하는 변수가 단순한 값이 아닌, 배열(array) / 객체(object) 또는 그 이상의 구조로

    이루어진 전제에서 문제풀이를 할 때에는, 의식적으로 새로운 선언 / 할당을 통해 코드를 단순화 하는 습관을 가지자.

    function getElementOfArrayProperty(obj, key, index) { 
    	let prop = obj[key]; 
        if (Array.isArray(prop)){ 
        	return prop[index]; 
        } else {
        	return undefined; 
          } 
    }

     

     

    위 코드는 객체(object)와 key (여기서 키는 배열이

    되는 경우), 그리고 index값이 주어졌을 때,

    key 안에서 주어진 index에 해당하는 값을

    출력하는 함수이다.

      * 키가 배열이 아닌 경우, index가 배열의 길이를

        넘어서는 경우에는 undefined를 리턴한다.

    선언/할당 없이 문제를 풀어보려고 아등바등

    하던 때의 코드는 아래와 같다.

    function getElementOfArrayProperty(obj, key, index) {
    	if (Array.isArray(key)){
        	return obj[key][index];
        } else {
        	return undefined; 
    }

     

    세 번째 줄의 코드가 문제인데, 어떻게든 주어진 변수들을 활용하여 작성 해 보려고 노력했으나,

    계속된 오류에 지치고 지쳐서 결국에는 gitHub의 헬프데스크를 통해 나와 비슷한 고민을 하신 분들의 해결 이력을 참고했다.

    (그 결과가, 위의 정상적(?)인 코드이며, 선언/할당에 대한 깨닮음이 왔다!)

    물론 더 간단히 해결할 수 있는 메소드들이 있을지도 모르고, 한 줄 더 코드를 작성하는 것이

    장차 내가 해 나가야 할 일에 좋지 않은 습관처럼 남을수는 있겠으나.

     

    지금은 의식적으로 let prop = obj[key];와 같은 선언/할당을 통해서 쉽게 해당 값에 접근할 수 있는

    방법을 적용하는게 좋다고 결론내렸다.

     

    ** 상/하단의 광고 클릭 한 번이, 꾸준한 창작활동에 큰 도움이 됩니다 :) **

     

    thumbnail Photo by Hannah Joshua on Unsplash

    728x90
    반응형

    댓글

Designed by Tistory.