我应该如何检测参数是否是数组,因为typeof []
返回'object'
,而我想区分数组和对象。
对象有可能看起来像{"0":"string","1":"string","length":"2"}
,但如果它实际上是一个看起来像数组的对象,我不希望它变成一个数组。
JSON.parse
和JSON.stringify
能够做到这一点。我该怎么做呢?
我使用的是基于V8的Node.JS,和Chrome一样。
发布于 2011-05-10 03:53:26
尝试以下代码:
Array.isArray(argument)
发布于 2011-05-10 03:50:21
这样如何:
your_object instanceof Array
在Chrome的V8中,我得到了
[] instanceof Array
> true
({}) instanceof Array
> false
({"0":"string","1":"string","length":"2"}) instanceof Array
> false
发布于 2014-02-17 21:03:50
我看起来这个问题有几个很好的答案,但为了完整,我想添加另一个选项,这是之前没有建议的。
为了检查某个对象是否是数组,您可以使用Node.js util
本机模块及其isArray()
函数。
示例:
var util = require('util');
util.isArray([]); // true
util.isArray(new Array); // true
util.isArray({"0":"string","1":"string","length":"2"}); // false
使用该方法,您不必担心由V8实现的JS标准,因为它将始终显示正确的答案。
https://stackoverflow.com/questions/5941706
复制相似问题