gpt4 book ai didi

javascript - 重写 if else 进行切换

转载 作者:行者123 更新时间:2023-11-28 01:51:38 24 4
gpt4 key购买 nike

我该如何将这个ifelse重写为switch

var d = document,
a = 'foo',
b = 'bar',
c = 'foobar';

if (d.URL.indexOf(a) != -1 || d.URL.indexOf(b) != -1)
{

// do this

}
elseif(d.URL.indexOf(c) != -1)
{

// do something else

}

它会持续大约 10 个ifelse,这就是为什么我更愿意将其更改为switch

我搜索了答案但没有找到任何答案,所以尝试了这个:

function io(i)
{
d.URL.indexOf(i) != -1;
}

switch (io())
{
case a:
case b:
// do this
break;
case c:
// do this
break;
}

以及同一件事的一些变体,但我是一个 JS 新手,所以知道我可能错了(我确实是错的)。

最佳答案

我认为这里最好的做法是实际创建一个具有其功能的对象数组,然后您只需使用 every 循环遍历该数组即可。 。这是使用上面示例的一些演示代码:

var choices = [
{
value: foo,
fn: function () { // do this }
},
{
value: 'foobar',
fn: function () { // do something else }
}
];
choices.every( function( choice ) {
if ( document.URL.indexOf( choice.value ) !== -1 ) {
choice.fn();
return false;
} else return true;
});

如果您知道将多次使用函数,则只需在数组外部创建它们并将它们分配给多个对象的 fn 键即可。通过在没有遇到它时使用 return true ,它将继续在数组中移动,然后当它遇到一个 true 时,它​​会 return false 并且结束每个函数。

关于javascript - 重写 if else 进行切换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19626107/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com