从json对象中删除项目

时间:2012-03-15 21:27:08

标签: javascript jquery json

我有以下json对象,我正在迭代:

obj = { '19': { id: '19', price: 5.55},
      '20': { id: '20', price: 10.00} }

$.each(obj, function(index, value){
  if(value.price < 5)
  {
   delete obj[index];
  }     

});

我只想在特定条件下从对象中删除项目。在这种情况下,如果价格低于5。

我尝试过删除,但它没有做任何事情。

2 个答案:

答案 0 :(得分:9)

如果值为< 5,则可以正常工作。在您的情况下,值为5.55,即> 5

DEMO - 显示值为< 5

时删除的对象

答案 1 :(得分:0)

jQuery可能会做一些你不期望的奇怪事情。有点像PHP的foreach如何创建原始数组的副本。

尝试原始JS:

obj = {...};
for( var x in obj) {
    if( obj[x].price < 5) delete obj[x];
}

那就是说,你的对象的价格都不到5,所以显然没有一个会被删除。