0
我想搜索多个字符串的字符串,并返回true
如果发现在那里的任何人,false
否则,这样的事情:如何在字符串中查找字符串数组?
var s = "thing1 thing2"
s.contains(["thing1","thing44444"]) // true
s.contains("1") // true
s.contains("x") // false
这里就是我有这么远,但它变得混乱并没有真正的工作:
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
循环没有找到任何东西。在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从你引用的第一个答案:“改变行为一个只会被你自己的代码使用的对象很好。“我很欣赏这些参考。很多很好的信息在这里。谢了,兄弟。 –