2017-01-20 3 views
-1

object과 연결된 배열 목록이 있습니다. 요구 사항은 거기에 모든 핵심 가치가있는 새 키를 만드는 것입니다.동일한 객체의 다른 키에 객체 키 복사

var obj = { 
    all:[ 
    obj.one, 
    obj.two 
    ], 
one:[ 
    'a', 
    'b', 
    'c' 
], 
two:[ 
'd', 
'e', 
'f', 
'g' 
] 
} 

// 구인 결과

var obj = { 
     all:[ 
     'a', 
     'b', 
     'c' 
     'd', 
     'e', 
     'f', 
     'g' 
     ], 
    one:[ 
     'a', 
     'b', 
     'c' 
    ], 
    two:[ 
    'd', 
    'e', 
    'f', 
    'g' 
    ] 
    } 
+1

원하는 결과를 추가하시기 바랍니다. 너 뭐 해봤 니? –

+0

그리고 왜 다른 키에 모든 키를 저장하고 있습니까? – Rajesh

+0

그는 "one"과 "two"속성을 가진 객체를 가지고 있으며, 그는 두 개의 다른 속성을 참조하는 "all"속성을 갖고 싶어합니다 ... 그러한 미로, 왜 그런가요? "obj.all"대신 "obj.one"및 "obj.two"를 얻는 것이 더 쉬운가? 당신은 그 물건을 지나치게 복잡하게 만들고 있습니다 ... – Julo0sS

답변

1
function accumulateKeyValues(obj){ 
    var accumulated = []; 
    for(var key in obj) 
     accumulated = accumulated.concat(obj[key]); 
    obj["all"] = accumulated; 
} 

예 :

function accumulateKeyValues(obj){ 
 
    var accumulated = []; 
 
    for(var key in obj) 
 
     accumulated = accumulated.concat(obj[key]); 
 
    obj["all"] = accumulated; 
 
} 
 

 
var obj = { 
 
    one:[ 
 
     'a', 
 
     'b', 
 
     'c' 
 
    ], 
 
    two:[ 
 
     'd', 
 
     'e', 
 
     'f', 
 
     'g' 
 
    ] 
 
}; 
 

 
accumulateKeyValues(obj); 
 

 
console.log(obj);

+0

물론, 모든 배열 값이 될 것이라고 가정합니다. –

1

개체의 모든 키를 가져와 새 배열의 모든 값을 가져올 수 있습니다.

var obj = { one:['a', 'b', 'c'], two: ['d', 'e', 'f', 'g'] }; 
 

 
obj.all = Object.keys(obj).reduce(function (r, k) { 
 
    return r.concat(obj[k]); 
 
}, []); 
 

 
console.log(obj);
.as-console-wrapper { max-height: 100% !important; top: 0; }

관련 문제