是否有条件增加或减少价值的清洁方式?

时间:2018-03-24 15:12:21

标签: javascript

这就是我想要实现的目标:

var direction = (getState() < state) ? -1 : +1;         //check direction
var state = state + direction

但我根本不喜欢这个解决方案。想要像:

var state = (getState() < state) ? state++ : state--;

2 个答案:

答案 0 :(得分:1)

您可以在没有作业的情况下使用三元组。

getState() < state ? state++ : state--;

state += getState() < state || -1;

答案 1 :(得分:1)

var state = state + direction

这是重新声明或不起作用的东西,所以

state += direction;

如果您对帖子(in | de)创作感到满意,我猜你可以折成一行。

state += getState() < state ? -1 : +1;

并且我认为这与操作得到的一样可读。

如果你做的事情只是略微不同(在state时没有改变getState() === state),你可以使用Math.sign

state += Math.sign(getState() - state);

这是一个很好的清洁解决方案,所以也许你可以改变问题以适应它。 =)