gpt4 book ai didi

javascript - 有效地将 for...in 循环限制为特定属性键

转载 作者:行者123 更新时间:2023-12-03 07:45:11 25 4
gpt4 key购买 nike

我有一个函数可以循环遍历包含预编译正则表达式模式的嵌套对象。它根据字符串检查每个模式,如果匹配,则使用“abriv”值进行替换。

代码有效,但我注意到在 Debug模式下检查循环时,正在根据字符串检查“regex”和“abriv”属性。

如何优化此循环,使其在执行第二个 for...in 时仅循环遍历“正则表达式”值?我尝试在循环中使用像“prop.regex”这样的访问器,但这似乎不起作用。

var car = /(\bauto\b|\bvehicle\b|\bride\b)/ig
var bus = /(\bcoach\b)/ig
var train = /(\bexpress\b|\brail\b)/ig

var regexList = {
car: {
abriv: 'car',
regex: car
},
bus: {
abriv: 'bus',
regex: bus
},
train: {
abriv: 'train',
regex: train
}
}

var testString = "I drove the auto";

function replacer(text) {
for (var regex in regexList) {
var obj = regexList[regex];
for (var prop in obj) {

if (obj.regex.test(text) === true) {
this.text = text.replace(obj.regex, obj.abriv);
return this;
}
}

}
}

replacer(testString);

最佳答案

我认为你甚至不需要第二个循环。

function replacer(text) {
for (var regex in regexList) {
var obj = regexList[regex];
if (obj.regex.test(text) === true) {
this.text = text.replace(obj.regex, obj.abriv);
return this;
}
}
}

这里是不是少了什么东西?

关于javascript - 有效地将 for...in 循环限制为特定属性键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35238337/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com