2012-02-08 117 views
2

我有JSON對象,看起來像下面的對象,這個對象可以持續幾天。所以我想知道是否有我可以在下面的例子中刪除全集相當於位置[0]或位置[1]的全集。我不得不首先迭代Object並試圖找出哪個是哪個。因此,可以說我正在尋找刪除郵編爲06238的集合,我需要遍歷整個位置對象並找出它在對象中的集合,然後相應地刪除它。問題是我不知道如何處理這個概念。jquery javascript從JSON對象中刪除對象數據

{ 
"locations": [ 
      { 
       "city": "San Jose", 
       "state": "CA", 
       "zipcode": "95125", 
       "longitude": "0", 
       "latitude": "0" 
      }, 
      { 
       "city": "Coventry", 
       "state": "CT", 
       "zipcode": "06238", 
       "longitude": "0", 
       "latitude": "0" 
      } 
     ] 
    } 

回答

15

只是簡單地傳遞你去通過正常的JSON迭代這樣

jQuery.each(locations, function(i, val) { 
    if(val.zipcode == "yourvalue") // delete index 
    { 
     delete locations[i]; 
    } 
}); 

類似的東西指數

delete locations[0]; 

。你在尋找一個想法還是一個完整的功能。

這裏是jsFiddle

+0

這裏是jsfiddle的例子http://jsfiddle.net/ChpFu/ – 2012-02-08 03:23:12

+3

我會謹慎從數組中刪除元素,而迭代通過它,特別是如果使用像'jQuery.each()'這樣的方法緩存'.length'開始之前... – nnnnnn 2012-02-08 03:30:42

+0

一個完整的解決方案總是很好,永遠不會否認其中的一個:-D 然而,一個足部容納的東西總是適用於。我認爲這對我很好。我很快就會對此進行測試,謝謝 – chris 2012-02-08 03:31:17

4

你可以寫這樣的removeFirst功能:

function removeFirst(arr, func) 
    { 
     for (var i=0; i<arr.length; i++) 
     { 
      if (func.call(arr[i])) 
      { 
       arr.splice(i,1); 
       return arr; 
      } 
     } 
    } 

然後調用它:

removeFirst(locations, function(){return this.zipcode=="06238";}); 

如果你想刪除一個以上的元素,你可以這樣寫:

function removeMany(arr, func) 
    { 
     for (var i=arr.length; i>0; --i) 
     { 
      if (func.call(arr[i])) 
      { 
       arr.splice(i,1); 
      } 
     } 
     return arr; 
    } 

並以相同的方式使用它。

可替代地,使用下劃線(http://documentcloud.github.com/underscore)以類似的方式拒絕方法:

_.reject(locations, function(location){ return location.zipcode=="06238";}); 

下劃線是這樣做的數組操作相當好。

+1

Removemany()中的For循環應該是for(var i = arr.length; i> 0; --i)。 – San 2012-10-03 21:59:30

0

它是我的工人。

arrList = $.grep(arrList, function (e) { 

     if(e.add_task == addTask && e.worker_id == worker_id) { 
      return false; 
     } else { 
      return true; 
     } 
    }); 

它返回一個沒有該對象的數組。

希望它有幫助。