javaScript Array类

ECMAscript 数组每一项可以保持任何类型的数据。

创建数组

var num=new Array();      

可以给数组预先设置项的数量:var num=new Array(20);

创建20项,每一项的值为undefined  


另一种创建数组的方法,数组字面量表示法

var num=[ ];  用方括号创建一个空数组。

读取数组

数组的索引是以0为基数。

所以nue[0] 返回 1  

为num数组添加新项。num[5]是一个undefined。赋值6

修改num指定位置的值  num[0]=2; 那么 1被修改成2;

数组的项数保存在length属性中

索引值始终数length-1

length可以移除末尾项与在末尾项添加新项

给num.length属性设为2,第2项之后的项被移除。

给num添加了 一个新项。值为undefined;

检测数组

value instanceof Array    

判断num是否为数组,如果是返回true

另一种检测是否为数组的方法

Array.isArray(value);

如果是数组返回true。

转换方法

所有对象都具有toString()、toLocaleString()、valueOf()的方法。

num.toString( )返回字符串形式的数组所有项

num.valueOf( )返回数组本身。

toLocaleString()返回的形式和toString()相同。当时有些情况可能会有所不同。

join( )方法接受一个参数,用来构建分隔数组项的分隔符。

栈方法(在数组项末尾移除项与末尾添加项)

数组可以表示得就像栈一样,栈是一种可以限制插入和删除项的数据结构。栈是一种LIFO 后进先出的数据结构。插入项叫推入

,移除项叫弹出,而且只发生在栈的顶部。

push()和pop方法分别可以在数组的末端添加项或移除项

push在数组的末尾添加3,4两项。然后返回数组项数,即数组长度

pop把数组末尾项移除,并返回该项的值4. 

队列方法

队列的数据结构FIFO 先进先出。

shift( )方法可以移除数组第一项,返回移除项的值。


num.unshift( )在首项前添加1,返回数组长度即总数组项。

重排序方法

数组中有两个可以用来重排序的方法reverse()和sort()

使用reverse( ) 方法,数组项的顺序被反转。

sort()方法,调用toString( )转型方法,取得数组项是字符串形式,然后比较字符串的大小,sort(_) 采用的是升序的排列数组项。即使数组的每一项都是数值也采用字符串形式进行比较.

sort()方法,可以接受一个比较函数作为参数。

该函数接收两个参数即数组的项。如果a-b是负数。a排在b前面。a-b是整数则b排在a前面。如果等于0则原地不动。

操作方法

 concat( )方法可以复制其它数组创建一个新数组,可以接受参数添加到复制的数组末尾。

numNew 通过num.concat 取到num的整个数组,concat(1,2,3)3个参数作为numNew

的项,从末尾插入。

slice( )方法可以取得数组任何位置的项。slice( ) 可以接收2个参数。第一个参数取项的开始索引位置,第二个参数是结束取项的索引位置但不包括本身。

取1到2的项,当不包括2。  如果是splic(1,1)  那将取到一个空数组


如果结束项数超出了数组的项数,那么相当于只带一个参数。只带一个参数slice将从开始位置取到剩余项。

如果参数是负数则负数加上数组的长度 .

splice( )方法。有三种功能  删除  插入 替换  ,splice提供三个参数。起始位置、要删除几项、要插入的项。

插入项可以传入多个参数

splice()插入项返回空数组。使用splice()方法原数组都受影响。在数组的前面即左边插入新项0,-1.

splice( )删除会返回删除项的值。1,2会删除数组2项,1位置1之后的。


splice( )替换会返回删除项的值。删除1位置的-1,替换成2.

位置方法

indeOf( )和lastIndexOf()方法。可以查询值得位置。indexOf是从开头查起,LastIndexOf是从末端查起。

indeOf  如果没有找到将返回-1,得到的位置是索引位置

 得到的结果和indexOf()相同。只是从末尾查起  

indexOf和lastIndexOf 第二个参数是从那个位置开始查起。

迭代方法

ECMAScript为数组定义了5个迭代方法。每个方法接收两个参数。要在每一项运行的函数和运行该函数的作用域对象。

函数会接收三个参数 数组项的值,该项在数组中的位置即索引值,数组对象本身。

var num=[1,2,3,4,5]

every( ) 方法将每一项的位置遍历一遍比较函数。如果全部返回true。即返回true。如果有一个是false则返回false。相当于逻辑与&&

filter()方法将每一项的位置遍历一遍比较函数,返回结果为true的位置值。1的索引位置是0;所有返回数组项1。

forEach()对数组中每一项运行给定函数,这个方法没有返回值。

map( )方法将每一项的位置遍历一遍比较函数,返回每一项函数遍历后的结果。

some()方法,将每一项的位置遍历比较函数,只要有一项比较函数为true则返回true ,相当逻辑或 ||。

归并方法

ECMAScript 两个归并数组的方法  reduce()和reduceRight()。

reduce()方法从数组的第一项开始,逐个遍历到最后。

而reduceRight()方法则从数组的最后一项开始,向前逐个遍历到第一项。

两个方法都接收两个参数。每一项调用的函数和作为并归基础的初始值。 初始值就是函数接收参数里的前一个值。

两个方法得函数接收4个参数。前一个值、当前值、项的索引值和数组对象。这个函数返回的任何值都会作为第一个参数自动返回给下一项。第一次迭代发生在数组的第二项上,因此第一给参数上数组的第一项,第二个参数就是数组的第二项。

reduce方法。第一项1+第二项2=3.  3这个值可以理解为前一项。这个时候prev=3,第二次迭代3+3=6,6即前一项,以此类推直到迭代结束。返回最终结果15.

reduce方法提供了第二个参数,那么第二个参数会作为前一项的值。迭代从第一项1开始。所以结果为16.

reduceRight的结果与reduce的结果相同,因为只是执行简单的操作。但是prev的值5,cur值4.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值