首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >JavaScript:检测参数是否是数组而不是对象(Node.JS)

JavaScript:检测参数是否是数组而不是对象(Node.JS)
EN

Stack Overflow用户
提问于 2011-05-10 03:46:05
回答 4查看 90.5K关注 0票数 89

我应该如何检测参数是否是数组,因为typeof []返回'object',而我想区分数组和对象。

对象有可能看起来像{"0":"string","1":"string","length":"2"},但如果它实际上是一个看起来像数组的对象,我不希望它变成一个数组。

JSON.parseJSON.stringify能够做到这一点。我该怎么做呢?

我使用的是基于V8的Node.JS,和Chrome一样。

EN

回答 4

Stack Overflow用户

发布于 2011-05-10 03:53:26

尝试以下代码:

代码语言:javascript
复制
Array.isArray(argument)
票数 73
EN

Stack Overflow用户

发布于 2011-05-10 03:50:21

这样如何:

代码语言:javascript
复制
your_object instanceof Array

在Chrome的V8中,我得到了

代码语言:javascript
复制
[] instanceof Array
> true
({}) instanceof Array
> false 
({"0":"string","1":"string","length":"2"}) instanceof Array
> false
票数 8
EN

Stack Overflow用户

发布于 2014-02-17 21:03:50

我看起来这个问题有几个很好的答案,但为了完整,我想添加另一个选项,这是之前没有建议的。

为了检查某个对象是否是数组,您可以使用Node.js util本机模块及其isArray()函数。

示例:

代码语言:javascript
复制
var util = require('util');

util.isArray([]);  // true
util.isArray(new Array); // true
util.isArray({"0":"string","1":"string","length":"2"}); // false

使用该方法,您不必担心由V8实现的JS标准,因为它将始终显示正确的答案。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5941706

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档