0

我有索引错误的对象。我无法编辑这个,因为我应用这个工作正常。

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

});

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

4

5 回答 5

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;
}, { } );
于 2012-08-07T13:31:47.123 回答
1

你不能简单地在 for 中做一个 if(value!=2 && value!=4) 吗?

于 2012-08-07T13:29:37.233 回答
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];
   }
});

注意:我假设您示例中的相同键是错误的。

于 2012-08-07T13:36:43.077 回答
1

删除所有值,其中value == 4

for (var member in object) { if (object[member]==4) {delete object[member]} }
于 2012-08-07T13:37:54.117 回答
0

我想你会想要使用filter而不是each.

于 2012-08-07T13:29:19.200 回答