Javascript 返回带条件的字符串
如果用户输入是陷阱(我发送了,它们是陷阱),那么下面是一个返回字符串的代码。解释对我来说是另一个问题,所以让我们看看代码:Javascript 返回带条件的字符串,javascript,Javascript,如果用户输入是陷阱(我发送了,它们是陷阱),那么下面是一个返回字符串的代码。解释对我来说是另一个问题,所以让我们看看代码: let trapSt='I was sent=I sent。他们是=他们是“;//正确版本=陷阱版本 //准备trapSt并制作阵列 trapSt=trapSt.toLowerCase().replace(/\s+/g,“”).split(“.”).map(s=>s.trim()); trapSt=trapSt.filter(s=>s); 控制台日志(trapSt); /
let trapSt='I was sent=I sent。他们是=他们是“;//正确版本=陷阱版本
//准备trapSt并制作阵列
trapSt=trapSt.toLowerCase().replace(/\s+/g,“”).split(“.”).map(s=>s.trim());
trapSt=trapSt.filter(s=>s);
控制台日志(trapSt);
//如果用户输入陷阱,则返回字符串的整个部分
函数findTrap(str){
让trapPairs=trapSt.map(s=>s.split('=');
控制台日志(trapPairs)
让matchI=trapPairs.findIndex(([first])=>first==str);
return trapSt[matchI]| | false;
};
让findTrapResult=findTrap('i was sent');//应该返回false
//让findTrapResult=findTrap('i sent');//应该返回“i was sent=i sent”,因为这是一个陷阱
console.log(findTrapResult)代码>看起来您在比较trapPairs
中的错误值。您正在以只包含第一个元素(左侧)的方式分解参数。如果要在equals的右侧匹配,则需要数组中的第二个元素。您可以通过以下方式实现:
函数findTrap(str){
让trapPairs=trapSt.map(s=>s.split('=');
控制台日志(trapPairs)
让matchI=trapPairs.findIndex(([first,second])=>second==str);
return trapSt[matchI]| | false;
};
看起来您在比较trapPairs
中的错误值。您正在以只包含第一个元素(左侧)的方式分解参数。如果要在equals的右侧匹配,则需要数组中的第二个元素。您可以通过以下方式实现:
函数findTrap(str){
让trapPairs=trapSt.map(s=>s.split('=');
控制台日志(trapPairs)
让matchI=trapPairs.findIndex(([first,second])=>second==str);
return trapSt[matchI]| | false;
};
rfestag的答案会起作用
我会提出另一种可能的解决方案:将陷阱版本视为一个键,以便可以映射到结果。我们可以从陷阱字符串中创建一个对象并查找结果,如果不匹配,则返回false
const trapSt='I was sent=I sent。他们是
const traps=Object.fromEntries(
trapSt
.toLowerCase()
.split(“.”)
.map((fullStr)=>{
常量trap=fullStr.split('=')[1].trim()
return[trap,fullStr.trim()]
}),
)
const findTrap=(str)=>陷阱[str]| | false
log(findTrap('i was sent'))
log(findTrap('i sent'))
rfestag的答案会起作用
我会提出另一种可能的解决方案:将陷阱版本视为一个键,以便可以映射到结果。我们可以从陷阱字符串中创建一个对象并查找结果,如果不匹配,则返回false
const trapSt='I was sent=I sent。他们是
const traps=Object.fromEntries(
trapSt
.toLowerCase()
.split(“.”)
.map((fullStr)=>{
常量trap=fullStr.split('=')[1].trim()
return[trap,fullStr.trim()]
}),
)
const findTrap=(str)=>陷阱[str]| | false
log(findTrap('i was sent'))
console.log(findTrap('i sent'))