我有糟糕索引的对象。我无法编辑此内容,因为我应用此功能正常。
var object = { "aaa": 1, "aaa": 2, "aaa" : 3, "aaa" : 4};
$.each(object, function(key, value){
});
如何删除value = 2和4的所有值?
答案 0 :(得分:4)
你做不到。每个值都会覆盖文字中的前一个值。
$> ({ "aaa": 1, "aaa": 2, "aaa" : 3, "aaa" : 4});
Object
aaa : 4
$>
你必须确保对象文字格式正确,然后使用这样的东西(ES5):
var filteredObject = Object.keys( yourObject ).reduce( function ( target, key ) {
if ( yourObject[ key ] !== 2 && yourObject[ key ] !== 4 )
target[ key ] = yourObject[ key ];
return target;
}, { } );
答案 1 :(得分:1)
你不能简单地将if(值!= 2&& value!= 4)加入for?
答案 2 :(得分:1)
您可以尝试delete
关键字删除密钥,这将删除值
这是代码
var object = { "a": 1, "b": 2, "c" : 3, "d" : 4};
$.each(object, function(key, value){
if(value==2 || value==4){
delete object[key];
}
});
注意:我认为示例中的相同键是错误。
答案 3 :(得分:1)
删除value == 4
的所有值:
for (var member in object) { if (object[member]==4) {delete object[member]} }
答案 4 :(得分:0)
我认为您希望使用filter
代替each
。