在javascript中搜索对象键值时使用正则表达式

时间:2017-05-31 10:51:27

标签: javascript regex

假设我有一个对象为

test = Object
    3232@alex= Object
    5656@alex= Object
    8383@felix= Object
    98232@tom= Object

我想获取测试中的对象,其中键值包含alex,我的意思是前两个对象。

3232@alex= Object
5656@alex= Object

通常我会将其作为test["3232@alex"]test."3232@alex".与他们联系 现在我可以编写一个正则表达式来获取key包含“alex”的对象。例如,我知道我可以循环遍历对象;

var arr = [];
for(var key in test){
    if(key.contains("alex")){
       arr.push(test[key]);
    }
}

这是唯一的方法吗?我实际上正在寻找一种避免循环的解决方案。

1 个答案:

答案 0 :(得分:1)

  

我实际上正在寻找避免循环的解决方案。

你有很多东西(对象键),你想通过它找到匹配的东西。 "翻阅"根据定义是一个循环。你不能避免循环。唯一的问题是你是自己编写循环(for (...)),还是使用一些在幕后为你循环的库实用程序或函数。使用哪种在某种程度上是偏好问题。如果您自己编写的循环运行得更快,以防您关心,那就不足为奇了。

一个例子是filter

Object.keys(test)
  .filter(key => /alex/.test(key)
  .forEach(key => console.log(key, test[key]));