2014-02-21 2 views
0

여러분, foo의 모든 항목을 bar과 재귀 적으로 찾고 싶습니다. 다음 JSON 객체가 있습니다.JavaScript 재귀 적 대체 객체

[Object] 또한 잠재적으로 대체해야 할 foo을 포함 할 수 있습니다.

{ _id: 530797d8952e10129f97fde3, 
    Product: 'something', 
    Realm: [ 'something', 'something','foo' ], 
    Service: 'Node', 
    Owners: [ 'foo', 'something' ], 
    Project: 'something', 
    URLs: 
    [ { 'foo': [Object] }, 
     { 'foo': [Object] }, 
     { 'foo': [Object] } ] } 

어떻게하면 되겠습니까? 나는 시도했지만 실패했습니다 :

var cleanObject = {} 
for (key in dirtyObject) { 
    key = key.replace('foo', 'bar'); 
    cleanObject[key] = dirtyObject[key]; 
} 
+0

제목에 재귀가 언급되어 있지만 (표시되는 코드에는 아무 것도 포함되지 않음) 재귀하는 법을 묻고 있습니까? 또는 표시되지 않은 코드가 더 있습니다. –

답변

1

팁 : "JSON 개체"가 아닙니다. "JSON 객체"와 같은 것은 없습니다. "JSON"은 객체를 나타내는 문자열입니다. 당신이 가진 것은 객체 리터럴입니다.

그러나 JSON이 도움이 될 수 있습니다. 시도해보십시오.

var cleanObject = JSON.parse(JSON.stringify(dirtyObject).replace(/foo/g,'bar')); 
+0

이는 키와 값을 대체합니다. 질문을 올바르게 읽으면 OP는 키만 바꾸려고합니다. –

+1

@StephenThomas 참. 그러나 나는 "모든 사건"으로 질문을 읽으며, 코드는 단지 키를 대체 할 수있는 허술한 시도로 간주합니다. 그 점에 관해서 질문은 모호하다 ... –

+0

는 동의해야한다. OP가 실제로 여기에서 원하는 것이 무엇인지 확실하지 않음 –