当前位置: 首页 > article >正文

如何判断一个值是否是数组

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。

在 JavaScript 中,可以通过几种不同的方式判断一个值是否是数组。以下是几种常见的判断方法:

1. Array.isArray() 方法

这是判断一个值是否为数组的推荐方法。Array.isArray() 会返回一个布尔值,true 表示是数组,false 表示不是数组。

let arr = [1, 2, 3];
let obj = {a: 1, b: 2};

console.log(Array.isArray(arr)); // true
console.log(Array.isArray(obj)); // false

2. instanceof 运算符

instanceof 可以用来判断一个对象是否是某个类的实例。你可以用它来检查一个值是否是 Array 的实例。

let arr = [1, 2, 3];
let obj = {a: 1, b: 2};

console.log(arr instanceof Array); // true
console.log(obj instanceof Array); // false

但是,需要注意的是,instanceof 可能会受到跨窗口或跨iframe环境的影响,因为每个窗口或框架可能有自己独立的 Array 构造函数。

3. Object.prototype.toString.call()

如果你需要更可靠的检查,尤其是在跨窗口或跨 iframe 的情况下,可以使用 Object.prototype.toString.call() 方法。这个方法可以返回一个更精确的字符串表示。

let arr = [1, 2, 3];
let obj = {a: 1, b: 2};

console.log(Object.prototype.toString.call(arr) === '[object Array]'); // true
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() 是最简单且最可靠的选择。


http://www.kler.cn/a/430454.html

相关文章:

  • Docker安装Prometheus和Grafana
  • 【Python学习(六)——While、for、循环控制、指数爆炸】
  • Chapter4.2:Normalizing activations with layer normalization
  • 自动驾驶三维重建
  • NCCL源码解读3.1:double binary tree双二叉树构建算法,相比ring环算法的优势
  • iOS 11 中的 HEIF 图像格式 - 您需要了解的内容
  • QT requested database does not belong to the calling thread.线程中查询数据报错
  • OpenCV相机标定与3D重建(10)眼标定函数calibrateHandEye()的使用
  • go语言的成神之路-标准库篇-fmt标准库
  • 力扣刷题TOP101: 27.BM34 判断是不是二叉搜索树
  • Erlang/OTP绿色版安装和RabbitMQ绿色版安装
  • 如何制作“优美”PPT
  • 【从零开始的LeetCode-算法】383. 赎金信
  • 《Vue进阶教程》第二课:为什么提出组合式API
  • 证书监控续签工具
  • 机器学习(4)Kmeans算法
  • 助推县域客运转型升级!合江荣程运业上线苏州金龙新V系纯电客车
  • TCP Robot Send Recive
  • Apache Echarts和POI
  • 在Vue.js中生成二维码(将指定的url+参数 生成二维码)
  • 大数据算法:初始权重影响对比-BN算法
  • 力扣打卡8:最长上升子序列
  • jenkins邮件的配置详解
  • Java-自动拆箱/装箱/缓存/效率
  • 自然语言处理和大语言模型综述(12.2-12.8)
  • HALCON 算子 之 阈值分割算子