JavaScript如果字符串等于其他值
JavaScript If string is equal to anything else
如何检查字符串是否与其他选项不相等?我知道我可以只做一个简单的else
语句,但我不确定它是否有效,因为我的if
中的代码没有组合,但它们只是if()
和else if()
,但没有else
。在不使用switch/case
语句的情况下,我如何执行else语句/检查是否有其他内容?
下面是一个例子。
if(object1 === "string") {
function1();
}
if(object1 === "string2") {
function2();
if(object2 === "string" && variable === 10) {
function1();
}
if(object1 || object2 === "") {
alert("That's not a valid option!");
}
警告
我无法将代码作为独立或片段插入此处,因为它超过了最大字符限制。我只能添加一个JSFIDDLE。请原谅这种不愉快。
JSFIDDLE
在没有if/else-if/else组合的情况下可以实现这一点的两种主要方法是通过的简单下降
function foo(opt) {
if (opt === 'this') { return true; }
if (opt === 'that') { return 'something else'; }
/* Code here represents the case that opt is not this or that */
}
另一种更复杂的方法是有一些选项数组,然后检查所有选项,但这是一种糟糕的模式,你真的应该考虑使用if/else-if/else作为一个组合树(不确定你是否真的解释过为什么不能这样做。
function foo(opt) {
var checked = ['this', 'that'];
if (opt === 'this') { return true; }
if (opt === 'that') { return 'something else'; }
if (checked.indexOf(opt) === -1) { return 'fall through case'; }
}
切换也是可能的,但这只是if/else-if/else组合的变体,所以如果你不能使用后者,我看不出前者对有什么帮助
同样,上面是一个坏模式,但如果出于某种原因必须这样做,那么就会有一个实现。
另一个解决方案是在执行其中一个if语句时引发标志,这样在结束时,您可以检查这些标志,如果没有一个是真的,那么您可以随心所欲。
var flag = false;
if(object1 === "string") {
function1();
flag = true;
}
if(object1 === "string2") {
function2();
flag = true;
if(object2 === "string" && variable === 10) {
function1();
flag = true;
}
if(object1 || object2 === "") {
alert("That's not a valid option!");
flag = true;
}
if(!flag) {
alert('no other options were validated');
}
相关文章:
- JavaScript不显示剩余字符,但适用于其他页面
- 在javaScript中通过DOM获取tagNames而不依赖于其他元素
- 设计模式以实现依赖于其他插件的插件
- jQuery事件在Mozilla上不起作用,并且适用于其他浏览器
- 有没有办法知道特定元素存在于其他 html 页面中
- 依赖于其他属性的 JavaScript 属性值
- 是否可以将从画布上下文创建的渐变应用于其他画布上下文
- 检查文件是否存在于其他服务器上
- 从一个ColModel获取值,执行数学运算并将值应用于其他ColModel
- 滚动后删除锚链接-也适用于其他页面的链接
- 为什么这个正则表达式替换不适用于JavaScript,而只适用于其他引擎
- 已计算的表单数据存在于其他元素中
- IE抛出JavaScript错误(适用于其他浏览器)
- 在创建项之前,请检查字段值是否存在于其他SharePoint列表中
- 多个Ajax请求的结果,一个依赖于其他Ajax输出
- 如何仅使用HTML计算依赖于其他表数据的表数据?
- Require.js独立于其他网站
- AngularJS过滤隐藏存在于其他数组中的项
- 革命滑块是完全灰色的,不工作.但也适用于其他主题
- youtube's的嵌入式视频不会落后于其他元素