在Javascript中的相关数组操作(2)--初学者的小笔记

来源:互联网 发布:在淘宝复制的链接在哪 编辑:程序博客网 时间:2024/06/03 20:25

一,操作方法

1.concat()方法

当我们需要对多个数组进行连接,并得到返回的数组时,我们可以使用concat()方法,不传递参数时仅复制数组的副本并返回,当括号里包含参数时concat()方法连接数组时也分两张情况:一是连接的是多个数组,每个数组的项都添加到结果数组中;二是连接数组和字符串 ,字符串被添加到结果数组的末尾项

2.关于 slice() 与splice()

我理解的slice方法是基于当前数组创建一个新的副本,并且slice可以接受两个参数,即起始位置和结束位置,并返回起始位置到结束位置的项,并不包括结束位置

重点是不会改变原数组,神技啊有木有!我就是靠这个区分他跟splice--这个跟他长得特别像的兄弟;举个栗子:

var arr1=['我','长','的','最','帅'];var arr2=arr1.slice(1,3)//返回 长,的
说起slice的亲戚splice,splice跟他的兄弟slice最大的不同就是他会对他的数组爸爸“动刀子”,即splice方法是会改变原数组的,说到动刀,就要说说怎么动了;


①删除 :splice()接受两个参数,同样是起始位置和结束位置,但不包括结束位置;

②插入:这是splice接受三个参数,起始位置,要删除的项,以及你要插入的项;splice(2,0,'你要插入的内容');

③替换:其实这跟插入差不多,不同是第二个参数,这个参数要写你要替换原数组的多少项,并且你要插入的和你要删除的多少项并不是一定要相等的;


二,位置方法

indexof()  lastindexof()

indexof是在数组中从位置0开始搜寻,找到则返回对应项,如果没有则返回 -1,而lastindexof则从数组的末端开始寻找其他与index方法相同;

通过index()的返回-1的机制,我们可以使用它达到数组去重;

var arr=[];var arr1=[1,1,55,6,8,44,5,55,8];for(var i=0;i<arr1.length;i++){//indexof 查找数组,数组中没找到返回-1if(arr.indexOf(arr1[i]) == -1){arr.push(arr1[i]);}}alert(arr);
说起数组去重,最简便的方法应该是ES6里面的set办法,当然也可以使用hash表达到去重目的;

三、迭代方法

就像字面上说的,迭代就是历遍数组的每一项元素,ES5定义了五种迭代方法,并接受两个参数,一个是每一项上运行的函数(函数里可以传递三个值,即数组项的值,位置,原数组),另一个是运行该函数的作用域(改变this的指向)

every() :每一项返回true,则返回true

filter() :返回会返回true的项所组成的数组

map():返回每次函数调用的结果所组成的数组

foreach():没有返回值

some():存在一项为真,则返回true


对于filter方法我们可以判断并得到数组中满足判定的对应项:

var arr1=[1,2,3,6,5,4,6,88];var arr2=arr1.filter(function(item,index,array){      return item>5});
四、归并方法

reduce()方法:从第一项开始,迭代数组,并作为参数传递给下一项,函数里一般有四个参数:(前一项,当前项,项的索引,原数组)

redeceRight():从最后一项开始

原创粉丝点击