首页 > 其他分享 >js查缺补漏——引用类型对象和数组

js查缺补漏——引用类型对象和数组

时间:2024-10-19 16:20:18浏览次数:10  
标签:返回 补漏 位置 arr js 查找 参数 数组 查缺

一、什么是引用类型——Object

引用类型是一种数据结构,而对象是引用类型的实例。有时候也叫对象定义,包含对象的属性和方法。

Object是原生引用类型之一。

创建对象实例的方法:

1.使用new操作符 
var obj = new Object()
obj.name = "aaa"
obj.age = 12

2.使用对象字面量的形式
var obj = {
  name: "aaa"
  age: 12
}

——————————————————————————————————
访问对象属性的两个方法:
1.obj.name  点表示法
2.obj["name"]  方括号表示法

区别:方括号表示法可以通过变量访问,还可以对语法错误、关键字、保留字定义的属性进行访问。

二、Array类型

数组不同于其他语言,有以下特点:

  1. 数组的每一项可以保存不同类型的数据
  2. 数组的长度是可变的,可以随着数据增加或减少而改变
````创建数组的方式:
1. var arr = new Array()  //使用new Array构造函数的方法
2. var arr = [1,2,'sss']  //使用字面量的形式

访问数组元素的方法:
通过数组索引的形式如 arr[0]

注意:数组的length不是只读的,修改length会修改数组。当设置length长度小于原有长度会自动截取最后的元素,如果大于,会自动新增undefined的元素。

当数组的项发生变化时,数组的length长度会重新计算。

````检测数组的方式:
1.arr instanceof(Array)
2.Array.isArray(arr)

数组的常用方法:
1.push() 可以接收任意数量的参数,逐个加到末尾,返回修改后数组的长度。
2.pop() 从数组末尾移除最后一项,减少length值,然后返回移除的项。
3.shift() 移除数组中第一个项并返回该项,同时数组长度减1。
4.unshift() 向数组添加任意项兵返回新的长度。
5.reverse() 反转数组项的顺序,返回按顺序输出的数组。
6.sort() 按升序排列,会自动调用toString()的方法。通过比较得到的字符串,按照从小到大的顺序排列输出数组。即使是数值也要比较字符串的大小。ps: 通常可以定义一个比较函数,定义升序或者降序的函数,再用sort()调用。
7.concat() 返回被连接数组的一个副本,不会改变原数组。如果传递的是一个或者多个数组,方法会讲数组中的每一项添加到末尾数组中。达到合并数组的功能。如果参数不是数组,则会添加到数组的末尾。
8.slice() 基于当前数组中的一个或多个项创建一个新数组,接受一个或两个参数【要返回项的起始和结束位置】。不会改变原数组。
如果只有一个参数,则是返回从这个起始项到数组末尾的所有项。而如果有两个参数,则是返回起始和结束位置之间的那些项,不包含结束位置的项。
ps:如果参数中包含负数,则是这个数加数组的长度来确定最后的位置,如果结束位置小于起始位置,返回空数组。
9.splice() 最强大,可以删除、插入和替换。主要是根据传入的参数决定。结果会返回一个新数组【从原数组中删除的项或者空数组】,会改变原数组。
如果传递两个参数,可以删除任意数量的项,要删除的第一个项的位置和要删除的项数。
如果是传递三个参数:
第一种情况:起始位置、0、要插入的项,在起始位置插入需要的数据。
第二种情况:起始位置、要删除的项数、要插入的任意数量的项。
10.indexOf() 从数组的开头开始向后查找,接收两个参数,要查找的项和表示查找起点位置的索引【可选的】返回要查找的项在数组中的位置,没找到就返回-1,查找的项是根据严格全等的标准
11.lastIndexOf() 从数组的末尾开始向前查找,接收两个参数,要查找的项和表示查找起点位置的索引【可选的】返回要查找的项在数组中的位置,没找到就返回-1,查找的项是根据严格全等的标准

迭代方法【都不会修改数组中包含的值】:每个方法都接收两个参数,要在每一项上运行的函数和运行该函数的作用域对象——影响this的值(可选的),传入这些方法中的函数接收三个参数:数组项的值、该项在数组中的位置和数组对象本身。
首先这两个方法都用于查询数组中的项是否满足某个条件。
1.every() 运行传入的函数,如果该函数对每一项都返回true,则返回true;【即数组的每一项都需要能符合运行函数的条件才返回true,否则false。必须全部符合】
2.some() 运行传入的函数,只要传入的函数对数组中的某一项返回true则返回true;【即数组的某一些项能符合运行函数的条件就返回true,否则false。至少有一项符合就行】
3.forEach() 没有返回值,和for循环机制一样
4.map() 返回每次函数调用的结果组成的数组
5.filter() 用来查询符合某些条件的数组项,返回一个数组的形式。
6.map() 返回一个新数组,通常用来对原始数组的每一项进行一个操作处理,比如对每一项加1。

归并方法:
1.reduce() 从数组的第一项开始,逐个遍历到最后。
2.reduceRight() 从数组的最后一项开始,向前遍历到第一项。
ps: 都接收四个参数:前一个值、当前值、项的索引和数组对象。
var arr = [1,2,3,4,5]
var sum = arr.reduce(function(prev,cur,index,arr){
    return prev+cur;
})


标签:返回,补漏,位置,arr,js,查找,参数,数组,查缺
From: https://blog.csdn.net/weixin_45404779/article/details/142798419

相关文章

  • 前端js html css 基础巩固4
    这是生成了不同的按钮进行显示 每一个按钮对应一个音频 点击按钮会播放对应的音频直接上代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"content="width=device-width,initial-scale=1.0&qu......
  • “JsonConvert”同时存在于“Newtonsoft.Json.Net20, Version=3.5.0.0, Culture=neutr
    原因是两个dll冲突了。需要去掉一个。Newtonsoft.Json(也称为Json.NET)是一个流行的开源JSON框架,用于.NET,它以其高性能、易用性和广泛的功能而闻名。它支持丰富的数据操作和序列化属性设置,如自定义转换器、日期时间格式控制、命名策略等。Json.NET还提供了序列化特性,如JsonObjectA......
  • 基于Node.js+vue公司日常考勤系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于公司日常考勤系统的研究,现有研究主要集中在大型企业的整体人力资源管理系统中的考勤模块,专门针对中小型企业日常考勤系统独立开发与优化的研究较少......
  • 基于Node.js+vue化妆品配方及工艺管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于化妆品配方及工艺管理系统的研究,现有研究主要以化妆品的成分分析或单一功能模块(如配方设计)为主1,专门针对配方及工艺管理系统,整合用户、化妆品信息、......
  • 基于Node.js+vue个人记账服务系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于个人记账服务系统的研究,现有研究主要以企业财务管理系统为主,专门针对个人的记账服务系统研究较少。在国外,个人理财观念兴起较早,相关的个人财务管理......
  • 基于Node.js+vue翰明教育教学管理系统(开题+程序+论文) 计算机毕业设计
    本系统(程序+源码+数据库+调试部署+开发环境)带文档lw万字以上,文末可获取源码系统程序文件列表开题报告内容一、选题背景关于教育教学管理系统的研究,现有研究主要以通用型的管理系统为主,专门针对翰明教育教学管理系统这种特定情境下的研究较少。在国内外,教育教学管理系统已......
  • Nuxt.js 应用中的 app:templatesGenerated 事件钩子详解
    title:Nuxt.js应用中的app:templatesGenerated事件钩子详解date:2024/10/19updated:2024/10/19author:cmdragonexcerpt:app:templatesGenerated是Nuxt.js的一个生命周期钩子,在模板编译到虚拟文件系统(VirtualFileSystem,VFS)之后被调用。这个钩子允许开发者在生......
  • jsp高校毕业生论文管理系统v3w2a
    jsp高校毕业生论文管理系统v3w2a本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能学生,院系管理员,论文信息,论文类型,论文成绩,下载记录,普通用户,院系名称,专业开题报告内容一、项目背景与意义在......
  • jsp高校毕业生离校系统7fq55
    jsp高校毕业生离校系统7fq55本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能用户,离校申请,离校人员,宿管,辅导员,财务员,缴费信息,消息通知,离校事务,钥匙归还开题报告内容一、项目背景与意义随......
  • jsp高等学校体育场馆设施管理系统6r24x
    jsp高等学校体育场馆设施管理系统6r24x本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表项目功能教师,体育场馆,运动器材,教学计划,场馆预约,器材借用,器材归还,预约取消技术要求:   开发语言:JSP前端使......