对象中的索引不正确

时间:2012-08-07 13:27:43

标签: javascript jquery

我有糟糕索引的对象。我无法编辑此内容,因为我应用此功能正常。

var object = { "aaa": 1, "aaa": 2, "aaa" : 3, "aaa" : 4};
$.each(object, function(key, value){

});

如何删除value = 2和4的所有值?

5 个答案:

答案 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