假设我有一个对象为
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]);
}
}
这是唯一的方法吗?我实际上正在寻找一种避免循环的解决方案。
答案 0 :(得分:1)
我实际上正在寻找避免循环的解决方案。
你有很多东西(对象键),你想通过它找到匹配的东西。 "翻阅"根据定义是一个循环。你不能避免循环。唯一的问题是你是自己编写循环(for (...)
),还是使用一些在幕后为你循环的库实用程序或函数。使用哪种在某种程度上是偏好问题。如果您自己编写的循环运行得更快,以防您关心,那就不足为奇了。
一个例子是filter
:
Object.keys(test)
.filter(key => /alex/.test(key)
.forEach(key => console.log(key, test[key]));