На основании вашего объяснения я создал пример того, что вам нужно.В этом примере кода я создал функцию, которая будет принимать две строки, они будут разделяться на любые несловесные символы и затем сравниваться независимо от порядка слов в строке.Если строки одинаковые, то есть содержат одни и те же слова, независимо от порядка слов, он вернет true.
let string1 = "this is the string";
let string2 = "string is the this";
function findMatch( string1, string2 ) {
//split by any non-word character, anything that is not
//a-z, A-Z, 0-9 ( including the _ character )
let splitPattern = /\W/;
let split1 = string1.split( splitPattern );
let split2 = string2.split( splitPattern );
//traverse string1 array
for ( let i = 0; i < split1.length; i++ ) {
let checkForMatch = false;
//traverse string2 array
for( let j = 0; j < split2.length; j++ ) {
if ( split1[ i ] === split2[ j ] ) {
checkForMatch = true;
break;
}
}//inner for
//if match not found in one itteration, strings do not
//match and false should be returned
if ( !checkForMatch ) {
return false;
}
}//outer for
//else it matches so return true
return true;
}//end findMatch
console.log( findMatch( string1, string2 ) );
Я надеюсь, что это вам поможет.
РЕДАКТИРОВАТЬ: В противном случае, если вы просто хотите проверить, существует ли string2 в string1, вы можете переключить двамассивы с разделенными результатами в циклах for.