2015-10-19 68 views
0

在瀏覽器環境中使用Javascript。我希望獲得與特定模式匹配的JSON對象中的所有鍵。說,所有這些都以mystring開頭。有沒有更簡單/有效的方法來做到這一點,而不必遍歷所有的鍵?獲取所有匹配模式的JSON密鑰

{ 
    somekey1: "someval1", 
    somekey2: "someval2", 
    mystringkey1: "someval", 
    mystringkey2: "someval" 

} 

曾有過類似的questions,但一)不完全回答這個問題,和b)jQuery是不是現在的選項。

+2

更簡單的/有效的方法是迭代的鑰匙。 – 2015-10-19 15:32:16

+0

當然你只是做'for(... in ..)',然後每次測試一下regex ... –

+1

這看起來像一個JavaScript對象,但不是JSON。 – Biffen

回答

3

正如評論中提到的那樣,遍歷對象並在找到匹配鍵時添加到結果中。

var data = { 
    somekey1: "someval1", 
    somekey2: "someval2", 
    mystringkey1: "someval", 
    mystringkey2: "someval" 
} 

var filtered = {} 

for (key in data) { 
    if (key.match(/^mystring/)) filtered[key] = data[key]; 
} 

console.log(filtered) 
3

使用Object.keysfilter

var myObj = { 
 
    somekey1: "someval1", 
 
    somekey2: "someval2", 
 
    mystringkey1: "someval", 
 
    mystringkey2: "someval" 
 

 
}; 
 

 
var pattern = /^mystring/; 
 
var matchingKeys = Object.keys(myObj).filter(function(key) { 
 
    return pattern.test(key); 
 
}); 
 

 
console.log(matchingKeys);