JS内置对象-数组

对象是带有属性和方法的特殊数据类型

对象名.属性名称

对象名.方法名称(参数表) join、shift......

 JavaScript常用内置对象

Array:数组,用于在单独的变量名中存储一系列的值

Date:用于操作日期和时间

String:用于支持对字符串的处理

Math:用于执行常用的数学任务,它包含了若干个数字常量和函数

Array(数组)对象

数组,对象数据类型

具有不同数据类型的一个或多个值的集合,字母或者文字必须引号包起来

如:"前端", "JS", "HTML"

创建数组

数组对象用来在单独的变量名中存储一系列的值

第一种创建数组方式,字面量的方式创建数组

var 数组名称 = ["前端","JS","HTML"];

第二种创建数组方式,以构造函数的方式创建数组

size表示数组中可存放的元素总数,分别赋值时也可以超过设置size总数;

var  数组名称 = new Array(size);

JS内置对象-数组_第1张图片

数组用一个名称存储一系列的值,用下标区分数组中的每个值,数组的下标从0开始

数组赋值

声明时赋值

var week= new Array ("前端","java"……);

分别赋值

var arr= new Array ( );

arr[0] = "前端";

arr[1] = "java ";

arr[2] = "后端";

访问数组元素:通过数组的名称和下标直接访问数组的元素

语法:

数组名[下标],下标从0开始 arr[0]

可以使用for-in循环输出数组元素

for 循环 配合length属性也可以循环,如图:

JS内置对象-数组_第2张图片

 length:数组的长度即数组中元素的数目

1.方法 join( ) 把数组的所有元素放入一个字符串,通过一个分隔符(如:-、&等)进行分隔,把数字转化为字符串;不会改变原数组;

 

如符号里面为空,则按照原元素组成显示,如:前端,java,后端;

例:

JS内置对象-数组_第3张图片

2.sort() 对数组排序,会改变原数组;

直接写sort() ,只对个位数有效,多位数会以第一位数进行排序;

多位数排序通过sort参数中加入函数实现

JS内置对象-数组_第4张图片

JS内置对象-数组_第5张图片

 

3.indexOf() 找到数组中所在项的下标,找不到返回-1,返回的是数字类型;

第二个参数,表示从第几个元素开始查找

JS内置对象-数组_第6张图片

 ES6新增查找元素的方法:

4.Includes()返回布尔值,如果Includes中的参数,在数组中存在,则返回true,不存在,则返回false;

5.push() 向数组末尾添加一个或更多元素,并返回新的长度 

JS内置对象-数组_第7张图片

6.pop()删除数组中的最后一个元素,并返回最后一个元素;

JS内置对象-数组_第8张图片

7. unshift()向数组前添加一个或多个元素,并返回新的长度 ;

JS内置对象-数组_第9张图片8. shift()删除数组最前面的一个数,并返回删除的数;

JS内置对象-数组_第10张图片

9. concat() 合并两个数组,会生成一个新数组,不会对原数组造成改变;

JS内置对象-数组_第11张图片

10. ES6新增合并数组的方式,拓展运算符号 ...

JS内置对象-数组_第12张图片

11. splice() 对数组指定位置的元素进行增删改操作,会改变原数组;

splice(元素所在的下标,删除元素的个数,需要添加的元素)

splice(0,0)返回的是空数组,

splice(元素所在的下标,删除元素的个数)返回的是被删除的元素

splice(-2,2) 负数表示倒着删除,返回的是被删除的元素

JS内置对象-数组_第13张图片

JS内置对象-数组_第14张图片

12.reverse() 方法将数组中元素的位置颠倒,并返回该数组。数组的第一个元素会变成最后一个,数组的最后一个元素变成第一个。该方法会改变原数组。

JS内置对象-数组_第15张图片

13.slice()ES6新增 提取数组的某个部分,并以返回被提取的部分

(1)第一个参数表示从哪个下标开始截取,第二个参数表示截取到哪个下标,但是不包括第二个参数下标所对应的元素,只截取到第二个参数的前一个元素(第二个参数-1,半闭合),也不会对原字符串造成影响;

(2)只写一个参数(索引值),表示从第一个参数一直截取到最后,返回从索引值到数组末尾的元素,前提是正数

(3)如果第一个参数为负数的话(有且只有一个参数),则从数组末尾开始返回

JS内置对象-数组_第16张图片

14.toString() ,ES6新增数组身上的toString方法是把数组转为字符串,直观效果是去括号,不管里面包裹基层数组,也是一样可以去除所有括号

15. find(), ES6新增

 item使每一个元素,index是每一个元素的索引,arry是原数组,return当条件成立,只返回第一个符合要求的值,参数根据需求填写,如可填写一个值

arr.find(fucnction(item, index, array){})

16.filter()ES6新增

 arr.filter(fucnction(item, index, array){})

当条件成立,返回所有符合要求的值,参数同find方法

JS内置对象-数组_第17张图片

 

17.every()ES6新增返回值是:布尔类型,如果数组元素中有一个不满足,就返回false

作用:
用于检测数组所有元素是否都符合指定条件(通过函数提供)。测试一个数组内的所有元素是否都能通过某个指定函数的测试。它返回一个布尔值。
注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。

   array.every(function(currentValue,index,arr), thisValue)

注意: every() 不会对空数组进行检测。
注意: every() 不会改变原始数组。

 JS内置对象-数组_第18张图片

18.some()ES6新增

作用:
用于检测数组中的元素是否满足指定条件(函数提供)。会依次执行数组的每个元素:如果有一个元素满足条件,则表达式返回true , 剩余的元素不会再执行检测。

1
参数说明:
参数1:function(currentValue, index,arr)
必须。函数,数组中的每个元素都会执行这个函数。
函数参数:
(1)currentValue必须。当前元素的值
(2)index可选。当前元素的索引值
(3)arr可选。当前元素属于的数组对象
参数2:thisValue
可选。对象作为该执行回调时使用,传递给函数,用作 “this” 的值。
如果省略了 thisValue ,“this” 的值为 “undefined”

every:一假即假:
some:一真即真


注意: some() 不会对空数组进行检测。
注意: some() 不会改变原始数组。

JS内置对象-数组_第19张图片

19. reduce() 方法ES6新增对数组中的每个元素执行一个由我们提供的reducer函数(升序执行),将其结果汇总为单个返回值。

reduce:一共4个参数

第一个参数:acc :累计器

第二个参数:cur :当前值

第三个参数:index:当前索引

第四个参数:src:原数组 返回值

定义和用法
reduce() 方法将数组缩减为单个值。
reduce() 方法为数组的每个值(从左到右)执行提供的函数。
函数的返回值存储在累加器中(结果/总计)。

注释:对没有值的数组元素,不执行 reduce() 方法。
注释:reduce() 方法不会改变原始数组。

JS内置对象-数组_第20张图片

 JS内置对象-数组_第21张图片

 

20.map() 方法ES6新增创建一个新数组,其结果是该数组中的每个元素都调用一个提供的函数后返回的结果

map 方法会给原数组中的每个元素都按顺序调用一次  函数。

拓展:求次幂,两种方法:Math.pow(x,y):求x的y次方

第二种方法:item**n(item表示元素,n 表示几次幂)

JS内置对象-数组_第22张图片

 

JS内置对象-数组_第23张图片

JS内置对象-数组_第24张图片

 

21. foreach()方法ES6新增主要是针对数组而言的,对数组中的每个元素可以执行一次方法

foreach方法主要有三个参数,分别是数组内容、数组索引、整个数组

 22.findIndex() ES6新增

  • findIndex() 方法返回传入一个测试条件(函数)符合条件的数组第一个元素位置。

JS内置对象-数组_第25张图片

 伪数组

三种:第一种:arguments, 第二种 字符串,第三种:DOM树

如何将伪数组转为数组

方法1:Array.from

方法2:[...arguments],拓展运算符

JS内置对象-数组_第26张图片

 

你可能感兴趣的:(排序算法,算法)