javascript三元运算符来增加或减少值

标签 javascript ternary-operator

以下代码中的唯一区别是用于增加或减少值的 -+ 符号。

if( that.hasClass('prev') ){
    $('.elem').scrollLeft( $('.elem').scrollLeft()-(0.1*factor) );
}
else if( that.hasClass('next') ){
    $('.elem').scrollLeft( $('.elem').scrollLeft()+(0.1*factor) );
}

我想知道如何将代码转换为一个小的三元语句,可以吗?

最佳答案

如果您确实需要测试这两个类(“next”和“prev”),您可以分解逻辑:

var mul = that.hasClass("prev") ? -1 :
          that.hasClass("next") ? 1 :
          0;

$(".elem").scrollLeft($(".elem").scrollLeft() + mul * 0.1 * factor);

如果您感觉特别有活力,您可以将其转换为 jQuery 函数:

$.fn.scrollDir = function() {
  return  that.hasClass("prev") ? -1 :
          that.hasClass("next") ? 1 :
          0;
};

$(".elem").scrollLeft($(".elem").scrollLeft() + that.scrollDir() * 0.1 * factor);

关于javascript三元运算符来增加或减少值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021429/

相关文章:

javascript - 在 ReactJs 中获取未定义的值

javascript - 正则表达式组捕获

javascript - 如何在排序时同步 Kendo UI 网格数据源?

javascript - 在数组上使用 Javascript .sort() 将所有零放在末尾

binary-tree - 如何将三元表达式转换为二叉树结构?

php - 无法理解的条件和功能的错误操作

Javascript 获取 ID 的 CSS 样式

javascript - 如何在三元运算符上告诉 javascript "any number bigger than"?

c# - 在 Lambda 中使用三元运算符的替代方法

java - 三元打印操作