怎样判定一个值是否是数组

[复制链接]
发表于 2025-12-10 08:44:04 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
发现宝藏

前些天发现了一个巨牛的人工智能学习网站,普通易懂,风趣幽默,不由得分享一下给各人。【宝藏入口】。
在 JavaScript 中,可以通过几种差异的方式判定一个值是否是数组。以下是几种常见的判定方法:
1. Array.isArray() 方法

这是判定一个值是否为数组的保举方法。Array.isArray() 会返回一个布尔值,true 体现是数组,false 体现不是数组。
  1. let arr = [1, 2, 3];
  2. let obj = {a: 1, b: 2};
  3. console.log(Array.isArray(arr)); // true
  4. console.log(Array.isArray(obj)); // false
复制代码
2. instanceof 运算符

instanceof 可以用来判定一个对象是否是某个类的实例。你可以用它来查抄一个值是否是 Array 的实例。
  1. let arr = [1, 2, 3];
  2. let obj = {a: 1, b: 2};
  3. console.log(arr instanceof Array); // true
  4. console.log(obj instanceof Array); // false
复制代码
但是,须要留意的是,instanceof 大概会受到跨窗口或跨iframe情况的影响,由于每个窗口或框架大概有自己独立的 Array 构造函数。
3. Object.prototype.toString.call()

假如你须要更可靠的查抄,尤其是在跨窗口或跨 iframe 的情况下,可以使用 Object.prototype.toString.call() 方法。这个方法可以返回一个更准确的字符串体现。
  1. let arr = [1, 2, 3];
  2. let obj = {a: 1, b: 2};
  3. console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
  4. console.log(Object.prototype.toString.call(obj) === '[object Array]'); // false
复制代码
Object.prototype.toString.call() 返回的结果为 [object Array],假如该值是数组的话。
总结



  • 保举方式:Array.isArray(),简便且稳固。
  • 备选方式:instanceof,实用于常见的场景,但在特别情况下大概会有标题。
  • 更通用的方式:Object.prototype.toString.call(),实用于跨框架、跨窗口等特别场景。
大多数情况下,使用 Array.isArray() 是最简单且最可靠的选择。
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表