2016-10-17 3 views
0

JSON 파일에 다음 배열이 있습니다. 각 TODO를 위의 항목으로 바꾸는 방법이 있습니까? 예를 들어 첫 번째 'TODO'는 '이전 질문'이어야하고 두 번째 질문은 '다음 질문'이어야합니다. 여기JSON 배열의 이전 문자열로 바꾸기

[ 
     {   
     "englishDefault": "Previous question", 
     "default": "TODO" 
     }, 
     { 
     "englishDefault": "Next question", 
     "default": "TODO" 
     } 
    ] 
+0

흠 .. 왜 같은 문자열로 2 항목을 가져와야합니까? + json을 처리하는 데 사용하는 언어를 알아야합니다. – Aks

+0

"위 항목"이라고 말하면 항상 "englishDefault"키가있는 항목입니까, 아니면 바뀔 수 있습니까? – Aaron

+0

@Aks, 자바 스크립트를 사용하고 있습니다. – timothyylim

답변

1

내가 그것을 할 것입니다 방법은 다음과 같습니다

// with ES6 
myArray.filter(i => i.default === "TODO").forEach(i => i.default = i.englishDefault); 

//without ES6 
for (var i=0; i<myArray.length; i++) { 
    var cur = myArray[i]; 
    if (cur.default === "TODO") { cur.default = cur.englishDefault; } 
} 
+0

''TODO "'tho – naomik

+0

@Aaron, 훌륭한 대답으로 설정하면 'default' 속성을 써야합니다. "englishDefault"의 중첩 된 인스턴스로 확장하는 방법이 있습니까? – timothyylim

+0

예 : 현재 개체의 "englishDefault"필드 (! == undefined)가 정의되어 있는지 여부를 테스트하고 "englishDefault"필드가있는 개체를 검색 할 때 개체 필드를 탐색하지 않는 경우 – Aaron

0

는 @Aaron 응답을 개선, 각과 삼항 연산자에 대해 사용할 수 있습니다.

for each (question in myArray) { question.default == "TODO" ? question.default = question.englishDefault : null; } 
관련 문제