0
私はそうでない複数の文字列の文字列を検索したい、それはそこにそれらのいずれかを発見した場合true
を返し、false
と思い、このような何か:文字列内の文字列の配列を見つけるには?
var s = "thing1 thing2"
s.contains(["thing1","thing44444"]) // true
s.contains("1") // true
s.contains("x") // false
は、ここで私がこれまで持っているものだが、それはなってきましたメシエとは実際には動作しません:それは何も見つからないままfor
ループを通してそれを作る場合
String.prototype.contains = function(xv) {
var t = this
if(xv.isString()){ // isString/isArray are functions I made elsewhere in my code, they work.
if(t.indexOf(xv) > -1)
return true;
} else if(xv.isArray()) {
if(xv.contains(t)){
return true
}
for(v in xv){
if(t.indexOf(xv[v]) > -1){
return true
}
}
} else {
return false
}
}
今のところ、それはundefined
を返します。私はfor
ループの後にreturn false
を持っていましたが、終了したのはfor
です。
これを行う簡単な方法があるように感じます。
私は既にHow do you search multiple strings with the .search() Method?を試しましたが、.search()
に配列を送信できませんでした。私が使用している
フレームワーク:角度1.5.8、jqueryの1.11.1
を使用することができますforループですが、終了する前に実行されます。 "これはあなたの例のコードでは不可能です。 – zzzzBov
組み込みのオブジェクトのプロトタイプを変更することを再考するか、少なくとも正しくポリ充填していることを確認することをお勧めします。 [なぜネイティブオブジェクトを拡張するのが悪いの?](http://stackoverflow.com/q/14034180/215552)も参照してください。例えば、['Array.isArray'](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray)はJavaScriptの最近のバージョンではすでに関数ですが、Angular既に['angular.isString()'](https://docs.angularjs.org/api/ng/function/angular.isString)... –
@MikeMcCaughanあなたが引用した最初の回答から: "独自のコードでのみ使用されるオブジェクトは問題ありません。私は参考に感謝します。ここにたくさんの良い情報があります。ありがとう、兄弟。 –