How do I add commas in between the inputs to make the function work?
function square(num) {
var items=str.split("")
return Math.abs(num*num - num2*num2)
}
square(4 2);
答案 0 :(得分:3)
您可以使用
function square(num, num2) {
return Math.abs(num*num - num2*num2);
}
console.log(square(4, 2));
console.log(square(2, 4));
答案 1 :(得分:0)
您可以使用数学绝对函数:
function square(num, num2) {
var sq1 = num * num,
sq2 = num2 * num2;
return Math.abs(sq2-sq1);
}
要处理您未在问题中包含的问题,可以将字符串传递给square函数,并按以下方式处理:
function square(NUMBERS_STRING) {
var numbers = NUMBERS_STRING.split(" "),
sq1 = numbers[0] * numbers[0],
sq2 = numbers[1] * numbers[1];
return Math.abs(sq2-sq1);
}
请不要将square("4 2")
与square(4 2)
混淆。
第二个是无效的javascript。
答案 2 :(得分:0)
值得指出的是,将此功能称为“方形”可能是一个坏主意。如果有人不习惯你的代码并且他们看到了这个功能,他们是否会知道它的作用是什么?也许diffOfSquares(num,num2)?
我的建议是拥有在99%的用例中可重用的真实数学函数:
function square(num, num2) {
num *= num;
num2 *= num2;
return Math.abs(num-num2);
}
然后为你的超载调用上面的内容。这样做的原因是,如果某些事情发生并且函数square(num,num2)中的基础逻辑需要修改,那么你只能在一种情况下修改它而不是它和其他所有重载。以下是我为您目前的情况做的事情:
function square(str) {
var items = str.split(" ");
return square(items[0], items[1]);
}
可选地,但是为了可重用性,如果我们得到一个用于管道分隔的字符串,将来会发生什么?逗号分隔?我不想打破假定间距的代码,所以我可能会修改该函数:
function square(str, delim = " ") {
var items = str.split(delim);
return square(items[0].trim(), items[1].trim());
}
所以,如果我打电话,我可以这样做:
square("4 2", " "); // space delimited
square("4 2"); // space delimited for legacy items
square("4, 2", ","); // comma delimited
square("4|2", "|"); // pipe delimited