2017-03-20 19 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

これはangular2とどのように関連していますか?それはJavaScriptの質問です。 – 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の**レコードがあると想定しています。これが保証されていない場合は、一時変数に割り当てる必要があります。 3つの操作の間で 'undefined 'をチェックしてください。 –

0

と仮定すると、データはあなたがあなたのようにそれを行う有効なJSONあるだろう平野のjavascriptに:... 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 attrが '4'である 'discParcel'の最初の要素を削除します。あなたは助けてもらえますか? –

+0

私はこのデータ[]を試しましたID ['3']。タスク[]。ID ['8']。discParcel [0]。しかし、それはエラーを投げる。 –

関連する問題