gpt4 book ai didi

javascript - Array.every 返回 false 而不是类型错误

转载 作者:行者123 更新时间:2023-11-29 18:08:41 26 4
gpt4 key购买 nike

在练习各种JavaScript代码套路时,遇到了这个问题:

用下面的签名写一个函数 isIntArray

function isIntArray(arr) {
return true;
}
  • 如果数组中的每个元素都是整数则返回真
  • 如果数组为空则返回真。
  • 对所有其他输入返回 false。

我已经为此制定了自己的解决方案,但公认的解决方案之一如下:

function isIntArray(arr) {
return Array.isArray(arr) && arr.every(function (x) { return Math.floor(x)=== x });
}

现在我明白了 Math.floor 部分在确定 x 是否为小数时是如何工作的,但我不明白的是当它遇到类似这样的事情时它是如何不倒下的:

var arr = [1,2,"asd",NaN,5];

我试着通读了一些关于 Math.floor 和 Array.prototype.every 的指南,但我找不到任何可以解释这一点的内容。当然,如果 x 是一个字符串,那么 Math.floor(x) === x 应该返回一个 TypeError 吗?

最佳答案

Surely if x was a string then Math.floor(x) === x should return a TypeError?

没有。如果其中一个操作数无法转换为数字然后进行运算,则大多数数学函数和运算都会返回 NaN

所以,它变成 Math.floor("asd") === "asd" 本质上是

NaN === "asd" // which is obviously false

关于javascript - Array.every 返回 false 而不是类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29434133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com