与えられた文字列が指定されたワイルドカードパターンと一致する場合はTrueを、そうでない場合はFalseを返す関数を実装します。指定された文字列が指定されたワイルドカードパターンと一致する場合はTrueを、そうでない場合はFalseを返す関数を実装します。
split()
,indexOf()
,startsWith()
およびendsWith()
の組み込みが許可されています。
私は最後のものと非常に似ていますが、まだそれを掛けることはできません。ここで私は私がやろうとしています何
function matches(text, pattern) {
var x = pattern.split("*");
var y = (text.indexOf(x[0]) !== -1);
for (i = 0; i< x.length; i++){
if (y) {
y = (text.indexOf(x[i]) !== -1);
}
}
return y;
}
console.log(matches("lord of the rings", "lord*rings")); // Expected: True
console.log(matches("lord of the rings", "Lord*rings")); // Expected: False
console.log(matches("lord of the rings", "l*o*t*r")); // Expected: False
console.log(matches("lord of the rings", "l*o*t*r*s")); // Expected: True
console.log(matches("lord of the rings", "lord*")); // Expected: True
console.log(matches("lord of the rings", "*rings")); // Expected: True
console.log(matches("lord of the rings", "*the*")); // Expected: True
console.log(matches("lord of the rings", "*")); // Expected: True
console.log(matches("lord of the rings", "*z*")); // Expected: False
これまで持っているものだと、言葉を分離し、それらの一つ一つをチェックしており、それらのすべてが存在しているならば、私はtrue
場合、またはを返しますそれらの少なくとも1つは私が返すものではありませんfalse
。しかし、何かが間違っていると私はかなり理解していない。
私のコードに解決策やフィードバックをいただければ幸いです。 ありがとうございました!
*「しかし何かが間違っている」*はあまりにも曖昧すぎて役に立たない。現在のコードでは、個々の部分がワイルドカード文字列で指定された**順序**にあることを確認するための何もしません。 –
そして私たちはあなたのためにあなたの宿題をするためにここにいないと言わせてください;) –
Lelioそれはどういう意味ですか?あなたが私のプロフィールでそれを見ることができるかどうかはわかりませんが、私はちょうど私が立ち往生していて、しばらくの間壁に頭を打っていたので、単に楽しみのためにコーディングし、これを簡単に尋ねます。これは私がコーディングクラスを持っているためではなく、これは私の宿題です。 – Lezhka