范围内的“交换”值

时间:2018-07-10 12:24:10

标签: javascript node.js math

我得到的数据是17之间的浮点值。 1不好,7很好。

有时候,当我得到这些数据时,我想将其“反转”,因为问题是负面的,1是好的,而7是坏的。


应该将1的分数“交换”为7的分数。

应该将2的分数“交换”为6的分数。

应该将2.5的分数“交换”为4.5的分数。


最初我以为我可以使用数组:

const array = [1,2,3,4,5,6,7]
return array[answer] - 1;

Math.abs(answer - 6),但都无法解决。

3 个答案:

答案 0 :(得分:2)

我认为您不需要数组,如果您的值是固定的(从1到7),则可以减去8:

return 8 - answer;

答案 1 :(得分:1)

这是实现此目的的简单函数:

function reverseRating(rating) {
   return 8 - rating
}

答案 2 :(得分:0)

以下功能可实现此目的:

function reverseOnScale(answer, from, to) {
  answerMinus = answer - from;
  reversedMinus = Math.abs(answerMinus - (to - from));
  reversed = reversedMinus + from;
  return reversed;
}

用法示例:

reverseOnScale(5, 1, 7);

输出值3。