2017-10-14 49 views
0

我有一個對象,它看起來像下面JavaScript的動態移除編號的數組元素

{ 
    "containers": [ 
    { 
    "fields": [ 
     {}, 
     {}, 
     'associative1': {}, 
     'associative2': {} 
     ] 
    } 
    ] 
} 

所以基本上「田」是具有像兩個字段[0]的數組,字段[1] &領域[associative1 ],字段[associative2]

我的問題是我能動態刪除「只是」編號的元素...... 所以最後「域」應該只是associative1,associative2元素

+4

該數組無效,您不能在數組文字中命名元素。 – Barmar

+1

你在哪裏以及如何得到這個對象,好像它不是實際的數據。 –

回答

1

創建一個有效的對象,看起來像什麼,似乎你打算......

var a = [{abc:1},{xyz:2}]; 
a.associative1 = {}; 
a.associative2 = {}; 
console.log(a); 

輸出(通過Chrome)

(2) [{…}, {…}, associative1: {…}, associative2: {…}] 
0: {abc: 1} 
1: {xyz: 2} 
associative1: {} 
associative2: {} 
length: 2 

您可以刪除就像編號的數組元素這...

a.splice(0,a.length); 

或者數組對象包含在一個更大的物體像這樣將工作...

c.containers[0].fields.splice(0,c.containers[0].fields.length) 
+0

看起來很棒......只是一個簡單的問題......究竟是什麼類型的「a」在這裏以及JavaScript如何實現分配a.associative1如果它被聲明爲一個數組...似乎是混合類型 – testndtv

+0

@testndtv Javascript報告typeof a ==='object'。 Javascript中的數組有'對象'類型。但是,並非JavaScript中的每個對象都是一個數組。 Array.isArray(a)=== true。但是Array.isArray({0:「hi」})=== false。因此,在嘗試使用拼接等數組方法之前,您可能需要檢查一個對象是否爲數組,而對於非數組對象則不存在。 – joshp

+1

@testndtv推薦https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array Description部分簡要介紹Javascript對象的關聯數組屬性與數組元素。 – joshp

0

這是一個無效的對象。字段數組包含名稱屬性,這是不允許的。在這種情況下,字段必須是一個對象。如果測試爲該對象設置變量(僅在瀏覽器控制檯中),它將失敗。

+0

所以我可以引用字段[0],字段[1],字段[associative1]等 – testndtv

1

在這裏,你去了一個解決方案

var data = { 
 
    "containers": [ 
 
    { 
 
    "fields": [ 
 
     {'abc': 1}, 
 
     {'xyz': 2}, 
 
     {'associative1': {}}, 
 
     {'associative2': {}} 
 
    ] 
 
    } 
 
    ] 
 
}; 
 

 

 
for(var k in data["containers"][0]["fields"]){ 
 
for(var key in data["containers"][0]["fields"][k]){ 
 
    if(!isNaN(data["containers"][0]["fields"][k][key])){ 
 
    delete data["containers"][0]["fields"][k]; 
 
    } 
 
} 
 
} 
 

 
data["containers"][0]["fields"] = data["containers"][0]["fields"].filter(function(element) { 
 
    return element !== undefined; 
 
}); 
 

 
console.log(data);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

你JSON是無效的。我已經改變了一點JSON。

希望這會幫助你。

+0

太棒了....正是我在找的東西! – testndtv

+0

@testndtv如果您滿意,請接受答案。 – Shiladitya