1
165
JS中对象的类型检查是通过
如果对象跨帧边界传递,这将不起作用,因为每个帧都有自己的边界
这两种方法仅适用于实际数组,而不适用于类似数组的对象,如
请注意,字符串将通过此检查,这可能会导致问题,因为IE不允许通过索引访问字符串的字符。因此,您可能想要改变
在大多数情况下,您真正想知道的是是否可以通过数值索引在对象上迭代。因此,检查对象是否具有名为
“强制转换到”对象对于类似数组的基本体(即字符串)来说是正常工作所必需的。 下面是用于对JS阵列进行健壮检查的代码:
和可重复(即非空)数组状对象:
|
2
44
ECMAScript第5版的推出为我们提供了最可靠的测试变量是否为数组的方法, Array.isArray() :
虽然这里接受的答案适用于大多数浏览器的框架和窗口,
它不适用于Internet Explorer 7及更低版本
因为
它不是完全牢不可破的,但只有努力打破它的人才能打破它。它解决了IE7和更低版本以及IE9中的问题。 The bug still exists in IE 10 PP2 ,但可能会在发布前修复。 另外,如果你不确定这个解决方案,我建议你测试一下你的心内容和/或阅读博客文章。如果您不喜欢使用条件编译,还有其他可能的解决方案。 |
3
8
Crockford在“好的部分”第106页有两个答案。第一个答案检查构造函数,但会在不同的帧或窗口中给出错误的否定。这是第二点:
Crockford指出,该版本将识别
他对这个问题的有趣讨论从第105页开始。 还有更有趣的讨论(发布好的部分) here
所有的讨论让我永远不想知道某个东西是否是数组。 |
4
2
(摘自jQueryV1.3.2的代码片段-稍微做了调整,以便在上下文之外理解) |
5
2
从大师John Resig和jquery那里窃取:
|
6
1
一旦确定该值是数组,您将如何处理它? 例如,如果要枚举包含的值 看 与数组类似,或者如果它是一个用作哈希表的对象,那么下面的代码将得到您想要的(当闭包函数返回除“undefined”以外的任何内容时,此代码将停止。请注意,它不会在COM容器或枚举上迭代;这将留给读者作为练习):
(注意:“o!=null”测试用于null和未定义) 使用示例:
|
7
1
为什么不直接使用
这是做这件事的标准方法(谢谢Karl) https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/isArray |
8
0
如果您想要跨浏览器,您需要 jQuery.isArray . |
9
0
在…上 w3school 为了检查一个变量是否是数组,他们使用类似的方法
在Chrome、Firefox、Safari和ie7上测试 |
10
-2
PHPJS site . 您可以链接到软件包,也可以转到 function directly . 我强烈推荐该站点使用JavaScript构建良好的PHP函数等价物。 |
11
-2
没有足够的构造函数引用。有时它们对构造函数有不同的引用。所以我用字符串表示它们。
|
12
-4
样品:
|
Toniq · javascript为php保存多维数组 1 年前 |
Jannis · Java中数组的怪异行为 1 年前 |
callum · 如何识别数组中与给定序列不匹配的元素? 1 年前 |
tenfour · 如何使用数组元素的索引初始化数组元素 2 年前 |
Guillaume · 使用操作从Python列表创建numpy数组 2 年前 |
maxMas · Swift 5:为什么会出现索引超出范围错误? 2 年前 |