2017-03-20 1 views
0

내 JSON이 이렇게 보입니다.중첩 JSON 요소를 제거하는 방법은 무엇입니까?

var data = [{ 
     "ID"     : 3, 
     "discRec"    : "Some sample record", 
     "Tasks"    : [{ 
           "ID"   : 7, 
           "discParcel" : ["string1", "string2"] 
           }] 
     }, 
     { 
     "ID"     : 4, 
     "discRec"    : "Some sample record 2", 
     "Tasks"    : [{ 
           "ID"   : 8, 
           "discParcel" : ["string3", "string4"] 
           }] 
     }]; 

은 지금은 '4로서 상위의 ID를 갖는다 ATTR'8 '로 ID를 ATTR 있습니다'discParcel '의 첫 번째 요소를 제거 할. 각성 2에서 그것을하는 방법. 아무도 도울 수있다.

+2

데이터 배열인가? – n00dl3

+0

각도 2와 어떻게 관련이 있습니까? 그것은 자바 스크립트 질문입니다. – echonax

답변

1
data 
    .find(record => record.ID === 4) 
    .Tasks.find(task => task.ID === 8) 
    .discParcel.shift(); 
+1

이제'find()'가 얼마나 훌륭한 지 잊어 버리지 마십시오. – YounesM

+0

감사합니다 YounesM. 잘 작동한다! –

+0

당신은 오신 것을 환영합니다. 이 솔루션에서는 ** ID가 4 인 레코드가 있고 ** ID가 8 인 작업이 ** 있다고 가정합니다.이 경우를 보장 할 수없는 경우 임시 변수를 할당해야합니다. 세 가지 작업 사이에'undefined '가 있는지 확인하십시오. –

0

가정 데이터가 당신처럼 그것을 할 올바른 JSON 인 것 일반 자바 스크립트 : ... JS 또는 JSON에서 유효한 구문이 아니다

let arr = JSON.parse(data); 
arr.forEach(e => { 
    if(e.ID === 4){ 
    Tasks.forEach(el => { 
     if(el === 8){ 
     discParcel.shift(); 
     } 
    }) 
    } 
}) 
+0

ID attr이 '8'이고 부모 ID가 '4'인 'discParcel'의 첫 번째 요소를 제거하고 싶습니다. 각도 2에서하는 방법 –

+0

ID [ '3'] 작업 []. ID [ '8']. discParcel [0]. 하지만 오류가 발생합니다. –

관련 문제