2012-10-26 103 views
1

整個鍵這可能是我缺乏術語的情況下,但如果有人能見識一下這個我會感激:刪除從JavaScript對象

我有它返回一個JSON數組的例程,完美的作品,但我希望根據傳遞的內容做一些計算。

因此,我已經將數組複製到一個臨時對象(稱爲tmp)中,然後我希望從該對象中移除某些不必要的'keys'(?)。

例如,我的 'TMP' 對象開始了具有:

fldCat2,fldCat3等等。

我不需要的是與'fldCat3'有關的任何東西,所以我希望從對象中移除整個密鑰。

爲了驗證這一點,我已經做了以下內容:

 console.log(tmp); 

     delete tmp.fldCat3; 
     delete tmp['fldCat3']; 

     var prop = "fldCat3"; 
     delete tmp[prop]; 

     console.log(tmp); 

然而這些DELETE方法不是一個從TMP對象刪除「fldCat3」。

有什麼東西很明顯我明白了嗎?

編輯

已附加對象的屏幕截圖從內螢火蟲(值移除)

FireBug output

+2

您可能沒有提供足夠的代碼,因爲您發佈的代碼段與從'tmp'對象中刪除'fldCat3'鍵沒有任何問題。 – lanzz

+0

都刪除tmp.fldCat3&刪除tmp ['fldCat3']應該工作得很好。你能否粘貼一段不按預期工作的代碼塊,包括創建對象? –

+0

用屏幕截圖修正了問題。 – JasonMHirst

回答

2

鑑於您的屏幕截圖,我假設您的問題是您正試圖從實際上具有這些屬性的對象數組中刪除屬性。

你將不得不通過所述陣列從每個這些移除fldCat3的所有元素都做這樣的事

for (var i = 0; i < tmp.length; i++) 
    delete tmp[i].fldCat3; 

在這裏你循環。

+0

完美!!!!根據你以前的幫助,會相應地改變,謝謝Jacob,非常感謝。 – JasonMHirst

+0

@JasonMHirst很好聽。我很高興它有幫助。 –

0

我已經經歷了這個問題了。我所做的是在從對象中刪除密鑰後使用UnderscoreJS_.compact(myObject)

+0

非常棒的圖書館,感謝您向我展示這些內容,這將有助於分組等其他內容! – JasonMHirst