2017-03-09 12 views
1

javascript에서 복잡한 트리 모양의 배열/객체를 만들어서 다른 프로필 (동적 프로필)을 사용하여 동적으로 만듭니다. 정적 인 특성 때문에이 배열을 주요 상수 파일 (물론 선언 상수)에 유지하는 것이 회사 정책입니다. 그래서 내 질문에, 어떻게 자바 스크립트 배열에 선언적 속성을 할당 할 수 있습니까?선언적으로 javascript 배열 속성을 할당합니다.

var a=[9,6,0,4]; 
a.title='profile 1'; 

그러나 문제는 이러한 지침, 그리고 일정 파일이 하나의 큰 객체, 그래서 나는 그것을 사용할 수 있습니다 : 나는 다음을 수행 할 수 있습니다 알고 있습니다. 나는 정상적인 객체를 사용할 수 있다는 것을 알고 있지만 숫자 인덱싱, 동적 길이, 푸시/팝 메서드 등을 정말로 원합니다. 속성 이름 인 Object.keys (a)와 같은 숫자를 대신 사용할 수있는 대체 문자가 있다는 것도 알고 있습니다. 길이 등,하지만 단순히 배열 경우 내 인생을 훨씬 쉽게 만들 것입니다. 기본적으로, 나는 이것이 하나 개의 명령어에 작성해야합니다

Array[2] 
>0: Object 
>1: Object 
>length: 2 
>title: "profile1" 
>__proto__: Array[0] 

편집 : 때문에 혼란, 내가 특별히 단일 명령으로 필요한 이유를 정리하려고합니다. 앞서 언급했듯이 상수 파일은 명령어가없는 하나의 큰 객체이지만 자체 선언이므로 속성이어야합니다.

CONSTANTS={ 
    const1: 'something', 
    const2: 'something', 
    const3: 'something', 
    ... 
    const60: 'something', 
    myArray: [ 
     [{},{},{},{}],//here the title property would go directly on the array 
     [{},{},{},{}],//same 
     [{},{},{},{}],//etc. 
     ... 
    ] 
}; 
+0

당신은'var' 초기화에서 원하는 것을 할 수있는 방법은 없습니다. 왜'a'를 배열을 속성 중 하나로 갖는 객체가 될까요? – Pointy

+0

출력/오타쿠가 무엇을 기대하는지 전혀 알지 못합니다. – epascarello

+0

동적 배열 배열이므로 각 배열에는 title, meta, hidden 등의 다른 특정 속성이 있습니다. 미안하다. 내가 예를 든 것은 실제 구조가 아니라는 것을 지정하지 않았다. 제가 처음에 말했듯이, 실제 대상은 나무의 복잡성을 가지고 있습니다. –

답변

1

당신은 Object.assign을 사용할 수

var a = Object.assign([1, 2, 3, 4], {title: 'profile 1'}); 
+0

나는 네이티브 (예 : 과제 ':'또는 '=')와 같은 것을 기대했지만 트릭을 수행합니다! 누군가 (심지어 내장 된) 방법을 사용하지 않고도 해결책을 제시 할 수 있다면 (최적화를 위해) 좋지만, 지금은 이것이 내 대답입니다. –

+0

임시 변수와 쉼표 연산자를 사용할 수 있습니다. 게시물에 추가하겠습니다. – SimpleJ

+0

내 수정을 확인하십시오. 'CONSTANTS'이외의 항목을 수정할 수 없습니다. –