2017-02-02 1 views
2

객체에서 여러 객체로 쉽게 이동할 수 있습니까? 이것에중첩 된 객체가있는 객체에서 배열

var obj = { 'generics.type': 'search.type', 'wood.name': 'search.name' }

:이에서

본질적으로
var nestedObj = [ {'generics.type': 'search.type'}, {'wood.name': 'search.name'} ] 

lodash 디폴트의 역 : https://lodash.com/docs/4.17.4#defaults

는 시간이 찾고, 지금은 여기에 돌리겠다 ... 감사합니다

+0

'nestedObj'가 배열로되어 있습니까? –

+0

당신이하려는 것은 무엇이든, 나는 그것이'_.defaults'의 역 (inverse) 인 것을 볼 수 없습니다. –

+0

예, 배열이되어야합니다. 언급하는 것을 잊었습니다. 편집 된 질문이 –

답변

2

로다시 또는 밑줄을 사용하면을 사용할 수 있습니다.:

var result = _.map(obj, (v,k) => ({[k]: v})); 
0
var nestedObj = { {'generics.type': 'search.type'}, {'wood.name': 'search.name'} } 

이 자바 스크립트에서 유효한 데이터 구조가 아닙니다. JavaScript 객체는 키와 값의 쌍입니다. 대신 여러 개체에 대한

사용 배열 :

var createDiffObjs = function(obj){ 
    var nestedObj = []; 
    for(var prop in obj) { 
       var elem = {}; 
       elem[ prop ] = obj [prop ]; 
       nestedObj.push(elem); 
       } 
    return nestedObj; 
} 

를 그리고 이렇게 사용 :

var multipleObjs = [ {'generics.type': 'search.type'}, {'wood.name': 'search.name'} ] 
+0

발견되었습니다. 고마워. 미아. 중첩 된 객체로 배열로 변환하는 방법 (간단/쉬운)을 찾고 있습니다. 질문을 편집했습니다 ... –

1

이 시도

nestedObj = createDiffObjs(obj); 
+0

나는 그것이 작동하지 않는다는 것을 알 것입니다 - 리터럴 객체에서 키로 변수를 사용할 수 없습니다. – mikeapr4

+0

@ mikeapr4 감사합니다 ... 지금 작동합니다. – dev8080

1

어쩌면 당신이 뭔가 짧은를 원하지만 명백한 해결책이 유일한 것이라고 생각하십시오.

var obj = { 'generics.type': 'search.type', 'wood.name': 'search.name' }; 
 
var arr = _.map(obj, function(v, k) { var o = {}; o[k] = v; return o; }); 
 
console.log(arr);
<script src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.8.3/underscore-min.js"></script>
모든

0

먼저 개체 구조가 유효 여부를 배열의 Destructuring (즉, 객체)를 호출 ES2015 = ES6 새로운 자바 스크립트 사양을 조사하기 위해 이동 한 후 http://pro.jsonlint.com/

로하고 확인 https://babeljs.io/learn-es2015/ JavaScript에 대한 새로운 접근법에 대한 모든 정보를 찾을 수 있습니다. 행운을 빕니다!!! (개체 구조가 옳다면 도움을 줄 수 있습니다)

관련 문제