2012-05-04 5 views
0

私はフィルタリングしたいオブジェクトを持っています。キー名によるオブジェクトのフィルタリング

query = { 
    "teststring-123": "true", 
    "teststring-12344566": "false" 
} 

$(query).each(function(index, value) { 
    $.each(value, function(i, v) { 
     if(i.indexOf('teststring-')==-1) { 
      // remove part of query object where index is this one  
      console.log(index) 
     } 
    });  
}); 

私はこれをどのように扱うことができます。

query = { 
    "teststring-123": "true", 
    "teststring-12344566": "false", 
    test: "true" 
} 

が、私はフィルタリング後の私は持っているように、クエリをフィルタする:これは私が使用何ですか? (このデモでは、Object.keys()は、すべてのキーを表示するために使用される)

$.each(query, function(key, value) { 
    if(key.indexOf('teststring-') == -1) { 
     delete query[key]; 
    } 
});  

http://jsfiddle.net/NvZyA/

答えて

2

delete演算子を使用します。

1

おそらくdeleteオペレータを探しています。

3

あなたは「teststring-」で始まるキーを持っていないすべてのキーと値のペアを削除しようとしていますか?もしそうなら...

for(var key in query){ 
    if(query.hasOwnProperty(key) && key.indexOf('teststring-') === -1){ 
     delete query[key]; 
    } 
} 
+1

! –

1

deleteオペレータ使用します。他の人が言ったように

var query = { 
    "teststring-123": "true", 
    "teststring-12344566": "false", 
    test: "true" 
} 
$.each(query, function(sKey) { 
    if (sKey.indexOf("teststring-") < 0) { // or check if it is not on first position: != 0 
     delete query[sKey]; 
    } 
}); 
0

を、delete演算子を使用します。ただし、オブジェクトのプロパティを反復する必要はありません。

var query = { 
    "teststring-123" : true, 
    "teststring-12344566" : false, 
    test: true 
}; 

delete query['test']; 
+0

鍵はあらかじめわかっていません。 OPは '' teststring * 'で始まらないキーを削除したいと思っています。 –

+0

はい、Rob Wが正しいです。他にどのキーがあるのか​​わからず、 "teststring"で始まらないものをすべてフィルタリングする必要があります。 –

0

このようにしますか?この、純粋なJavaScriptのような

var query = { 
    "teststring-123": "true", 
    "teststring-12344566": "false", 
    "test": "true" 
} 
var newobj = {}; 

$.each(query, function(i, v) { 
    if(i.indexOf('teststring-') != -1) { 
     // remove part of query object where index is this one   
     console.log(i); 
     newarr[i] = v; 
    } 
}); 
console.log(newobj); 
+0

ユーザーが厳密なモードを使用している可能性があり、グローバルプラグインなどに含まれている場合は非常に良いです。 – noob