如何找出对象是否为JavaScript中的数组?

时间:2018-09-06 06:51:06

标签: javascript arrays constructor type-conversion

在浏览有关“ W3Schools”的JavaScript教程时,我发现了这段代码,解释了如何确定对象是否为数组。

function isArray(myArray) {
    return myArray.constructor.toString().indexOf("Array") > -1;
}

我不知道该特定行如何执行。

Link to W3School's page in question

1 个答案:

答案 0 :(得分:1)

即使该问题已接受有关正确使用Array.isArray()的答案

问题是关于从W3Schools执行特定的代码,因此出于教育的原因,代码示例中发生了什么。

myArray.constructor是对对象构造函数的引用。 Link

的更多内容

考虑到这一点,我们可以继续:

myArray.constructor.toString()

将结果输入

  

function Array(){       [本地代码]}

函数indexOf将返回字符串序列在其他字符串序列中的位置。如果找到我们要查找的字符串,它将返回int位置。如果没有,indexOf将返回-1。

函数可以描述为:如果对象的字符串化构造函数中“数组”的位置大于-1,则对象为数组。

希望这会有所帮助。