JS中的array和Object的区别

区别:

数组表示有序数据的集合,对象表示无需数据的集合。如果数据顺序很重要的话,就用数组,否则就用对象的好。

数组的数据没有名称'name'   对象的数据有名称 'name' 但是在很多编程语言中有个叫关联数组的,这种数组中的数据是有名称的。

 

如何区分array和object:

1:通过isarray方法

使用方法: Array.isArray(obj); //obj是检测的对象  

2:通过instanceof运算符来判断

     instanceof运算符左边是子对象(待测对象),右边是父构造函数(这里是Array),

具体代码:

            var obj = {"k1":"v1"};
            var arr = [1,2];
            console.log("对象的结果:"+(obj instanceof Array));
            console.log("数组的结果:"+(arr instanceof Array));

3::使用isPrototypeOf()函数

原理:检测一个对象是否是Array的原型(或处于原型链中,不但可检测直接父对象,还可检测整个原型链上的所有父对象)

使用方法: parent.isPrototypeOf(child)来检测parent是否为child的原型;

isPrototypeOf()函数实现的功能和instancof运算符非常类似;

具体代码:

Array.prototype.isPrototypeOf(arr)//true表示是数组,false不是数组

4:利用构造函数constructor

具体代码:

            var obj = {"k1":"v1"};
            var arr = [1,2];
            console.log(obj.constructor == Array)
            console.log(arr.constructor == Array)

5:使用typeof(对象)+类型名结合判断:

具体代码:

            function isArrayFour(arr) {
                if(typeof(arr) === "object") {
                    if(arr.concat) {
                        return 'This is Array'
                    }else {
                        return 'This not Array'
                    }
                }
            }
            console.log(typeof(obj))
            console.log(typeof(arr))
            console.log(isArrayFour(obj))
            console.log(isArrayFour(arr))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/402403.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux C 数据结构——栈

还是先把这张图贴出来,以便对比和理解 栈是限制在一段进行插入操作和删除操作的线性表(俗称堆栈),允许进行操作的一端称为“栈顶”,另一固定端称为“栈底”,当栈中没有元素称为“空栈”。特点:先…

常用的HTTP状态码

2019独角兽企业重金招聘Python工程师标准>>> 第一、成功的状态码: 1)200 OK – 服务器成功返回网页 2)304 Not Modified – 未修改 第二、失败的状态码: 3)404 Not F…

Linux C 数据结构——队列

还是先放这张图,以便对比和理解: 队列是限制在两端进行插入操作和删除操作的线性表,允许进行存入操作的一端称为“队尾”,允许进行删除操作的一端称为“队头”。当线性表中没有元素时,称为“空队”。特点:先…

MySQL视图查询报错:Prepared statement needs to be re-prepared

From: https://www.ywnds.com/?p12609 今天公司的项目视图查询报错,报错如:ERROR 1615 (HY000): Prepared statement needs to be re-prepared 网上找了一圈,都说调整以下值就好了: mysql> set global table_open_cache163…

如何使用FF的Firebug组件中的net工具查看页面元素加载消耗时间

1.安装FF的Firebug组件:点击FF的Tools的Add-ons菜单,输入Firebug关键字,并选择合适的版本Install。 2.安装完毕后地址栏右边会出现一个小虫图标,右边还有一个下拉箭头。如下图: 3.点击下拉箭头,选择“on fo…

Linux C 数据结构——二叉树

先放这张图: 可以看出,树是非线性结构; 一、树的概念 树(tree)是n(n>0)个节点的有限集合T,它满足两个条件: 1)有且仅有一个特定的称为根(root)的节点&…

antd 表单域验证规则 - 只能输入数字字符,去除前导0

<Form {...formItemLayout}><Form.Item label用户Id>{getFieldDecorator(uid, {initialValue: undefined,rules: [{ required: true, message: 请输入用户id, pattern: new RegExp(/^[1-9]\d*$/, g) }],getValueFromEvent: e > e.target.value.replace(/\D/g, )…

2013 822 划分子网

子网的划分是为了节省我们的网络的ip地址的分配,如我们有200台电脑需要一个子网段,我在这个192.168.0.1网段我们有254个地址,我们可以将我们的计算机划分成不同的子网,来进行使用,这样的话就是节省了大量的IP地址.补充下上次忘记总结的东西,就是如192.168.10.101/24 24表示我们…

BZOJ 3224: Tyvj 1728 普通平衡树

3224: Tyvj 1728 普通平衡树 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 9629 Solved: 4091[Submit][Status][Discuss]Description 您需要写一种数据结构&#xff08;可参考题目标题&#xff09;&#xff0c;来维护一些数&#xff0c;其中需要提供以下操作&#xff1a;…

springboot中配置mybatis数据源,使用阿里的 Druid 数据库连接池

参考了很多文章&#xff0c;记录下自己的学习过程&#xff01; 参考&#xff1a;https://blog.csdn.net/weixin_40776321/article/details/99633110 1. 在pom.xml中添加依赖&#xff1a; <dependency><groupId>com.alibaba</groupId><artifactId>dr…

Linux C 算法——查找

所谓“查找”记为在一个含有众多的数据元素&#xff08;或记录&#xff09;的查找表中找出某个“特定的”数据&#xff0c;即在给定信息集上寻找特定信息元素的过程。 为了便于讨论&#xff0c;必须给出这个“特定的”词的确切含义。首先&#xff0c;引入一个“关键字”的概念&…

SharePoint项目中新建类库的错误处理及项目建设中遇到的问题总结

第一次SP项目总监遇到各种问题&#xff0c;以下是总结&#xff1a;问题1.创建SP项目的时候“场解决方案”跟“沙盒解决方案”是有区别的&#xff0c;具体可以看MSDN官方文档&#xff0c;这里简单摘抄如下&#xff1a;1&#xff09;场解决方案&#xff1a;承载与W3WP.exe中&…

ECharts学习(1)--简单图表的绘制

1.获取ECharts 官网 下载&#xff1a;http://echarts.baidu.com/download.html 2.在html页面中引入ECharts文件 <!DOCTYPE html> <html><head><meta charset"UTF-8"><title>ECharts练习</title><script type"text/javas…

php配置xdebug断点调试

环境&#xff1a;mac 10.15.4 zcmzcmdeMacBook-Pro 20190902 % php -v PHP 7.4.9 (cli) (built: Aug 7 2020 19:23:06) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologieswith Xdebug v2.9.6, Copyright (c) 2002-2020, by Derick R…

Linux C 算法——排序

排序(Sort)是将无序的记录序列&#xff08;或称文件&#xff09;调整成有序的序列。 为了方便讨论&#xff0c;在此首先要对排序下一个确切的定义&#xff1a; 假设含有n个记录的序列为 { R1、R2、&#xff0c;。。。Rn } 其相应的关键字序列为 {K1、K2&#xff0c;。。。。Kn}…

HTTP错误代码

服务器错误代码大全 400 - 错误的请求。 401 - 访问被拒绝。IIS 定义了许多不同的 401 错误&#xff0c;它们指明更为具体的错误原因。这些具体的错误代码在浏览器中显示&#xff0c;但不在 IIS 日志中显示&#xff1a; 401.1 - 登录失败。 401.2 - 服务器配置导致登录失败。 4…

UIKit封装的系统动画

简介 在UIKit中&#xff0c;对UIView封装了很多类方法来进行简单的动画实现&#xff0c;在动画过程中&#xff0c;通过对属性值的修改来完成一系列的效果。 在IOS4以前&#xff0c;主要通过 beginAnimation setAnimationDuration:设置动画时长 setAnimationDelay:设置延迟时…

MS SQL Server2008大数、小数转varchar

HTJE在表中的字段类型为float(53) 试了下str, cast和convert&#xff0c;发现对于小数或大数&#xff0c;多少都存在一些问题&#xff0c;最后经过尝试终于找到一种满意的答案&#xff1a; select cast(HTJE as decimal(20,2)) from T_HTGL where ID 1002993 对于金额部分&…

oracle那些基本知识

Oracle创建表空间、创建用户以及授权 、查看权限 rownum 分页查询 它是oracle系统顺序分配为从查询返回的行的编号&#xff0c;返回的第一行分配的是1&#xff0c;第二行是2&#xff0c;依此类推&#xff0c;这个伪字段可以用于限制查询返回的总行数&#xff0c;而且rownum不能…