2015-10-19 53 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);