我想從JSON對象中刪除一個對象。有沒有簡單的方法來做到這一點?如果我有一個對象,我可以從中刪除該項目,還是將對象轉換爲數組並將其拼接更好?每個的優點和缺點是什麼。如何從JSON對象中刪除對象?
我想寫的邏輯是這樣的。
function remove(delKey, delVal, o, stack){
for(var key in o) {
if(typeof o[key] === "object") {
stack != undefined ? stack += "." + key : stack = key;
remove(delKey, delVal, o[key], stack);
} else {
if(delKey == key && delVal == o[key]) {
delete o;
}
}
}
}
改變代碼,使用刪除,而不是拼接
所以這基本上是我想怎樣做,如果有一個更簡單的方法,那麼請讓我知道。我在這裏遇到的問題是A.我不知道拼接在哪裏。 B.如果我拼接,我認爲我不會通過遞歸返回到其他對象的拼接結果。
我的問題是因爲每次我不知道嵌套屬性時我將有不同的JSON。這就是我使用堆棧變量的原因。堆棧會嵌套屬性。所以如果我想刪除一個蘋果的顏色,堆棧將是json.fruit.apple.color。但它不是一個對象。
無論如何,沒有人有更好的解決方案從JSON刪除對象?
您正在尋找'delete'運算符。 – SLaks
當然,好吧,我也嘗試過。但如果我只是嘗試刪除o;這是行不通的。 – recneps
您還需要學習如何使用'delete'運算符。請參閱MDN的文檔。 – SLaks