首页 > 其他分享 >JS区分数组和对象的方法

JS区分数组和对象的方法

时间:2024-03-25 18:58:31浏览次数:31  
标签:console log 区分 object JS 数组 const array Array


1.使用Array.isArray()方法:
Array.isArray()是一个静态方法,它接受一个参数,如果参数是一个数组,则返回true,否则返回false。这是区分数组和对象的最直接和最准确的方法。

const array = [];
const object = {};

console.log(Array.isArray(array)); // 输出: true
console.log(Array.isArray(object)); // 输出: false


2.使用instanceof运算符:
instanceof运算符用于测试构造函数的prototype属性是否出现在对象的原型链中的任何位置。
javascript

const array = [];
const object = {};

console.log(array instanceof Array); // 输出: true
console.log(object instanceof Array); // 输出: false


3.检查对象的constructor属性:
通常,数组的constructor属性会指向Array构造函数,而普通对象的constructor属性会指向Object构造函数。但请注意,这个属性可以被修改,因此它不如Array.isArray()或instanceof可靠。

const array = [];
const object = {};

console.log(array.constructor === Array); // 输出: true
console.log(object.constructor === Array); // 输出: false


4.使用Object.prototype.toString.call():
这个方法可以返回一个表示该对象的字符串。对于数组,返回的字符串通常包含"[object Array]"。这是一种比较通用的方法,因为即使修改了对象的constructor或prototype,它通常也能正确工作。

const array = [];
const object = {};

console.log(Object.prototype.toString.call(array) === '[object Array]'); // 输出: true
console.log(Object.prototype.toString.call(object) === '[object Array]'); // 输出: false


这些方法中,Array.isArray()是最推荐的方法,因为它简单且准确。instanceof也是一个不错的选择,但需要注意它在跨框架或跨窗口环境中的行为可能不如预期。如果你需要更通用或更健壮的解决方案,可以考虑使用Object.prototype.toString.call()。而检查constructor属性通常不是一个好主意,因为它可以被轻易修改。

标签:console,log,区分,object,JS,数组,const,array,Array
From: https://blog.csdn.net/zlc516/article/details/137021844

相关文章

  • node.js这些常用命令,你都会了吗?
    前言node.js是我们经常会使用到的工具,在我们构建网络应用中node.js是必不可少的工具。所以作为IT人,一些常用的有关node.js的命令是我们必须要掌握的,本文就给大家介绍一下node.js常用的一些命令,看看你都会了吗?npm相关npm(NodePackageManager)是Node.js的包管理工具,用于安装、......
  • 排序算法练习——最大间距:给定一个未排序的数组,找到排序后相邻元素之间的最大差值
    最大间距:给定一个未排序的数组,找到排序后相邻元素之间的最大差值。解决这个问题可以使用桶排序的思想。具体步骤如下:找到数组中的最大值和最小值。根据数组的长度,将数组划分成一定数量的桶,每个桶存放一定范围内的元素。计算每个桶内元素的最小值和最大值。遍历桶,计算相邻......
  • 排序算法练习——按照字符串的异位词分组:给定一个字符串数组,将所有异位词(字符相同但顺
    按照字符串的异位词分组:给定一个字符串数组,将所有异位词(字符相同但顺序不同的字符串)分组到同一个组中。要按照字符串的异位词分组,可以使用哈希表来将每个字符串排序后作为键,相同键的字符串即为异位词。以下是实现这个算法的Python代码:fromcollectionsimportdefaultdict......
  • 代码随想录 Day3 数组 | LC977 有序数组的平方 & LC209 长度最小的子数组(滑动窗口))
    四、有序数组的平方题目:力扣977:有序数组的平方给你一个按 非递减顺序 排序的整数数组 nums,返回 每个数字的平方 组成的新数组,要求也按 非递减顺序 排序。示例1:输入:nums=[-4,-1,0,3,10]输出:[0,1,9,16,100]解释:平方后,数组变为[16,1,0,9,100]排序后,数组变为[......
  • .netcore获得swagger对象信息(解析swagger的json文件)
    以下代码未经测试,谨慎使用!!! varreader=newMicrosoft.OpenApi.Readers.OpenApiStringReader();vardoc=reader.Read(System.IO.File.ReadAllText(_webHostEnvironment.WebRootPath+"/a.json"),outvardiagnostic);vardoc1=_swaggerGenerator.GetSwagger(versio......
  • openstackq区分共有镜像还是私有镜像:visibility
     在OpenStack的Glance组件中,glanceimage-show命令用于显示指定镜像的详细信息。其中,visibility字段用于表示镜像的可见性。visibility字段决定了哪些用户或租户(project)可以访问和使用该镜像。OpenStack中的镜像可以有不同的可见性级别,以便管理员能够控制镜像的访问权限。以下......
  • 06天【代码随想录算法训练营34期】 第三章 哈希表part01(● 242.有效的字母异位词 ●
    242.有效的字母异位词思路:26位的array,每个分别对应a,b,c...,z,如果遇到一个字母就++,如果两个array一样则为anagramhint:toinitiateanarraywithnelementscarryingvalue0:arr=[]arr=[0foriinrange(n)]print(arr)classSolution:defisAnagram(self,......
  • 【JS】并发请求
    需求封装一个函数,做到可以进行并发请求,并将结果返回。该函数接收两个参数,分别为urls和maxNum。urls是数组,其中元素均为请求地址;maxNum表示最大并发数。如果有完成的请求,会从urls中,按序取出下一个请求,请求的结果会计入返回的数组中,返回的数组中元素的索引与参数urls中保......
  • Ajax 发送json格式数据以及发送文件(FormData)和自带的序列化组件: serializers
    前后端传输数据的编码格式(contentType)get请求数据就是直接放在url?后面的url?usernmae=junjie&password=123...可以向后端发送post请求的方式form请求ajax请求前后端传输数据的编码格式urlencodedformdatajson研究form表单:默认的数据编码格式是(urlencod......
  • 基于ssm+vue.js的在线购书商城系统附带文章和源代码设计说明文档ppt
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我成功案例代码参考数据库参考源码获取前言......