如何在 JavaScript 三元运算符中打乱多个值

How to shuffle multiple values in JavaScript ternary operator

本文关键字:运算符 三元 JavaScript      更新时间:2023-09-26

我已经成功地实现了多条件三元运算符来在水平和垂直之间洗牌类,如下所示:

jquery:

<script type="text/javascript">
  $(document).ready(function() {
      $("#my_div")
     .removeClass("horizontal vertical")
     .addClass( ['red', 'blue', 'green', 'gray'].indexOf(my_color) != -1 ? 'horizontal' : 'vertical');
});
</script> 

my_color当时可能有一个值,从红色,蓝色,绿色,灰色白色和黑色。如上所述,类horizontal为前 4 个my_color值设置,为其他值设置vertical。现在我想添加和删除三类elliptical,其中水平,垂直和椭圆设置为仅my_color的2个值。如何修改上述脚本或使用 switch 语句实现相同的脚本?

您可以使用带有开关的 toggleClass 来轻松添加/删除类:

$(document).ready(function() {
   var colors = ['red', 'blue', 'green', 'gray'];
   $("#my_div")
      .toggleClass('horizontal', colors.indexOf(my_color) != -1)
      .toggleClass('vertical', colors.indexOf(my_color) == -1)
      .toggleClass('elliptical', [colors[0], colors[1]].indexOf(my_color) != -1);
});
如果颜色与数组匹配,则添加第一个类,如果

不匹配,则删除第二个类,如果颜色与第一个或第二个数组值匹配,则添加第三个类。 array.indexOf 并非在所有浏览器中都受支持,您可能应该使用填充码。