我的网址看起来像这样= https://studentscafe.com/menu/2
我正在尝试检查它是否有2个不同的网址参数...
1。)?dinner=1
或
2。)&dinner=1
如果存在#1,则不执行任何操作
如果存在#2,则不执行任何操作
但如果两者都不存在,则默认将?dinner=1
添加到网址。
有没有更好的方法让默认值在if语句中什么都不做?例如Fiddle here。
var path = 'https://studentscafe.com/menu/2';
if (path.indexOf('?dinner=1') >= 1) {
console.log('has ?');
// do nothing leave url as it is
} else {
console.log('does not have ?');
if (path.indexOf('&dinner=1') >= 1) {
// do nothing leave url as it is
} else {
path = path + '?dinner=1';
}
}
预期输出:如果网址没有#1或#2:https://studentscafe.com/menu/2?dinner=1
答案 0 :(得分:5)
而不是
if (something) {
// do nothing
} else {
// do what you need
}
您可以使用
if (!something) {
// do what you need
}
在你的情况下:
if (path.indexOf('?dinner=1') == -1 && path.indexOf('&dinner=1') == -1) {
path = path + '?dinner=1';
}
答案 1 :(得分:0)
在现代 JS 中,你可能只是喜欢
['?dinner=1','?dinner=2'].every(s => !path.includes(s)) && (path += '?dinner=1');