JSON 객체 프로퍼티 할당

조회수 1108회

예를들어 db라는 객체에 다음과 같은 구조로 값을 저장하려고합니다.

db = {level1: { 0901 : { 1210: { data : 3.0}}}};

db = {}일때 위 값을 저장하려고

db['level1']['0901']['1210']['data'] = 3.0 했는데 두번째

하위항목 즉 '0901' 프로퍼티가 지정되지 않았다고 나오네요.

그래서 할수 없이 다음과 같이 코딩했습니다.

db = {};
db['level1'] = {};
db['level1']['0901'] = {};
db['level1']['0901']['1210'] = {};
db['level1']['0901']['1210']['data'] = 3.0

좀더 간단한 방법이 없을까요?

  • (•́ ✖ •̀)
    알 수 없는 사용자

3 답변

  • 이렇게 하니까 되네요

      addDataArrayToDB(dataArray, fileName: string) {
        const fileInformation = this.findInfomationFromFileName(fileName);
        const sensorNumber = fileInformation.sensorNumber;
        const startingDate = fileInformation.startingDate;
        const startingTime = fileInformation.startingTime;
    
        this.flowDB = {
          [sensorNumber] : {
            [startingDate] : {
              [startingTime] : {
                'data' : dataArray[0]
              }
            }
          }
        };
        console.log(this.flowDB);
      }
    
    • (•́ ✖ •̀)
      알 수 없는 사용자
  • var db = {
        "level1": { 
            "0901" : { 
                "1210": { 
                    "data" : 3.0
                }
            }
        }
    };
    

    그냥 이렇게 하면 되는데...

    프로퍼티 접근 표현식으로 객체를 만들어야 하는 이유가 있나요?

    • 프로퍼티명을 변수명으로 지정할거거든요. 문자열 'level1'이 저장된 변수 sensorName로 지정하려고요. 그래서 처제의 일기님이 알려주신 코드를 참고해서 아래 답변글과 같이 작성하니까 되네요~ 알 수 없는 사용자 2017.9.26 18:07
  • 원하시는 패턴을 보통 네임스페이스패턴이라고 표현합니다. 보통은 원하는 이름만 전달하면 해당 네임스페이스에 객체체이닝을 만들어주는 유틸함수를 하나 만들어서 사용합니다. 구글에 javascript namespace 라고만쳐도 한글자료들 포함 많이 나옵니다.

    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)