我有以下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。
我尝试过删除,但它没有做任何事情。
答案 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,所以显然没有一个会被删除。