[英]When String Contains Elements From Arrays In Order
当变量“ message”按顺序包含每个数组中的一个元素时,如何使控制台打印为真:“ greetings”,“ colour”,“ names”,但在“ greetings”之前和“ colour”之后的任何单词仍显示为true 。
如果元素乱序,则应打印false。
如果元素之间有单词,则应打印false。
查看当前代码下方的示例。
当前代码:
var message = '';
var greetings = 'hi' || 'hello' || 'hey';
var colour = 'red' || 'green' || 'blue';
var names = 'john' || 'evan' || 'etienne';
if (message.includes(greetings + ' ' + colour + ' ' + names)) {
console.log(true);
} else {
console.log(false);
}
消息时应打印的示例:
message = 'hi green evan' //true
message = 'lol hey blue john' //true
message = 'hello green etienne! xD' //true
message = 'evan green hi' //false because wrong element order
message = 'hi very green evan' //false because word in-between elements
var message = 'hi green evan'; var greetings = ["hi","hello","hey"]; var colour = ['red','green','blue']; var names = ['john','evan','etienne']; var contained = false; greetings.some(x =>{ colour.some(z=>{ names.some(e=>{ if(message.includes(x + ' ' + z + ' ' + e)){ contained = true; alert(true); } }); }); }); if(!contained) alert(false);
您可以这样做。 可能不是最好的方法,但我想到的第一件事
您可以为此使用正则表达式。
var message = "hello green etienne! xD"; var greetings = ["hi", "hello", "hey"].join("|"); var colors = ["red", "green", "blue"].join("|"); var names = ["john", "evan", "etienne"].join("|"); var reg = new RegExp("^.*(" + greetings + ")\\\\s+.*(" + colors + ")\\\\s+(" + names + ").*$"); console.log(reg.test(message));
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.