我在一个JavaScript类中有一个乘法方法,它应该将数组中非未定义的所有元素相乘。我使用for loop检查每个元素的类型,即number并将它们推到一个空数组,然后使用reduce方法将它们相乘。但我现在有的问题是结果是返回南。我想知道我做错了什么。
下面是我的代码。
null
class Calculator {
add(numbers) {
let result = [];
for (const i in numbers) {
if (typeof numbers[i] === "number"){
result.push(numbers[i])
}
}
console.log(result.reduce(function (a, b) {
return a + b;
}, 0)); // This works as expected
}
multiply(numbers) {
let result2 = [];
for (const j in numbers) {
if (typeof numbers[j] === "number"){
result2.push(numbers[j])
}
}
console.log(numbers.reduce((a, b) => a * b)); //This is returning NAN inside of the multiplication result
}
subtract(num1, num2) {
return num1 - num2;
}
divide(num1, num2) {
return num1 / num2;
}
}
let values = new Calculator();
values.add([10, undefined, -1, 10, 100]);
values.multiply([10, 5, 6, 'a']);
null
尝试更改数字。reduce为result2。reduce。请参阅下面的更新代码。
null
class Calculator {
add(numbers) {
let result = [];
for (const i in numbers) {
if (typeof numbers[i] === "number") {
result.push(numbers[i])
}
}
console.log(result.reduce(function (a, b) {
return a + b;
}, 0)); // This works as expected
}
multiply(numbers) {
let result2 = [];
for (const j in numbers) {
if (typeof numbers[j] === "number") {
result2.push(numbers[j])
}
}
console.log(result2.reduce((a, b) => a * b)); //This is returning NAN inside of the multiplication result
}
subtract(num1, num2) {
return num1 - num2;
}
divide(num1, num2) {
return num1 / num2;
}
}
let values = new Calculator();
values.add([10, undefined, -1, 10, 100]);
values.multiply([10, 5, 6, 'a']);
我很熟悉在JavaScript中是“怪异的”,即总是返回,如本文所述。因此,不应进行比较来检查,而应使用isNaN(..)取而代之的是。 所以我惊讶地发现 这似乎不一致。为什么会有这种行为? 它是怎么工作的?方法是否专门检查?
本文向大家介绍在JavaScript中使用NaN值的方法,包括了在JavaScript中使用NaN值的方法的使用技巧和注意事项,需要的朋友参考一下 不带引号的字面常量NaN是一个特殊的值,表示不是非数字。由于NaN总是比较不等的情况,以任何数,包括NaN,它通常是用于指示应该返回一个有效的数的函数的错误条件。 注意:使用isNaN()全局函数来查看是否值是NaN值。 语法 您可以使用以下语法访问
问题内容: 我正在解析JSON事件供稿中的日期-但日期在IE7 / 8中显示为“ NaN”: 我究竟做错了什么?谢谢! 问题答案: 在较旧的浏览器中,您可以编写一个函数来为您解析字符串。 这将创建一个Date.fromISO方法-如果浏览器可以从ISO字符串本地获取正确的日期,则使用该本地方法。 一些浏览器部分正确,但返回了错误的时区,因此仅检查NaN可能不会。 Polyfill: 结果:
我正在尝试用RSA加密对用户输入进行加密。 使用Eclipse中的调试监视器,我可以看到当代码使用“e”为asciiLetter提供动力并尝试mod"n“时,”e“和”n“是一个太大的数字,并且返回无穷大或nan。有什么关于如何改变这一点的指导吗? 我将位长从1024更改为128,但这没有效果。 稍后,我需要解密,但正在努力使这部分工作在事前。
问题内容: 我在这里多次看到类似的问题,但有一个很大的不同。 在其他问题中,返回类型将由参数确定。我想要/需要做的是通过解析后的值确定返回类型。从我收集到的信息来看,以下方法可行: 我只是想确保在我搞砸任何东西之前,它有机会工作。提前致谢。 问题答案: 你做不到 Java返回类型必须是固定的基本类型或对象类。我敢肯定,您能做的最好的事情就是返回一个包装器类型,该包装器类型具有可获取各种可能类型的值
问题内容: 我有一类这样的方法: 我如何在另一个类中调用此方法? 问题答案: 1. 如果要从中调用该方法的类位于同一包中,则创建该类的实例并调用该方法。 2. 使用 3. 最好有个赞等等。 例如: