接受数字并返回另一个数字的函数,反之亦然

时间:2019-07-04 22:40:23

标签: javascript

我最近在一次采访中遇到一个问题,并为如何解决而感到困惑。我将非常感谢您的协助。

该问题要求我创建一个函数,该函数接收一个数字作为参数(599),并返回一个不同的数字,但也可以反向进行。问题是我不允许使用任何类型的条件运算符,例如ifswitch等...

据我所知:

function changeValue(v) {
  // return 599 if 395 passed and vice versa
}

3 个答案:

答案 0 :(得分:6)

使用对象

function changeValue(v) {
  const obj = {'395': 599, '599': 395};
  return obj[v];
}

console.log(changeValue(395));
console.log(changeValue(599));

答案 1 :(得分:5)

这如何:

function changeValue(v) {
    return (599 + 395) - v;
}

从编程的角度来看,这不是使用对象的解决方案,因为对象(地图/字典)更易于扩展到其他值。

答案 2 :(得分:1)

除了在对象中显式记录参数-结果对(请参阅其他答案)之外,您还可以使用f形式的线性函数(从数学类中记住它)f(x)=mx+b f(599)=395f(395)=599。 解决这个问题得到:m = -1, b = 994

function changeValue(v) {
  return 994 - v;
}

console.log(changeValue(395));
console.log(changeValue(599));