JavaScript Array对象使用方法解析
1.数组的常用方法
push(val):数组的末尾添加新的元素,返回操作完成后数组的长度
pop():删除数组最后一个元素,返回被删除的元素
shift():删除数组的第一个元素,返回被删除的元素
unshift(val):数组的开头添加新的元素,返回操作完成后数组的长度
2.数组的遍历
数组遍历可以使用for循环和foreach
3.ES6数组新增方法
filter(cb):过滤
some(cb):检测数组中是否有元素满足条件,只要有一个满足就返回true,否则返回false
every(cb):所有元素都满足才会返回true,否则返回false
reduce(cb):累加器
reduce()对数组元素进行遍历,每次遍历就进行依次累加计算,遍历结束后返回累加的最终值
语法:arr.reduce((要累加并返回的数,数组元素)=>{},初始值)
varlist=[ {name:'西瓜',price:2,num:2}, {name:'香蕉',price:4,num:1}, {name:'玉米',price:2,num:5}, {name:'苹果',price:8,num:1} ] vartotalPrice=list.reduce((total,item)=>{ returntotal+item.price*item.num },0) console.log(totalPrice)//26
4.查找数组的子元素
查找数组元素的下标
indexOf():返回具体元素在数组中的下标
findIndex(cb):查找符合条件的第一个元素的下标
lastIndexOf()和indexOf()的功能一样,不同的是lastIndexOf()从后往前查找
查找符合条件的第一个数组元素find(cb)
这个方法跟filter()差不多,只是这个只查找一个。而filter()会查找所有符合条件的数组元素
判断一个数组是否含有某个子元素includes()
5.数组转换
数组与字符串间的转换split()/join()
伪数组转化为数组(一个对象,如果可以通过下标的形式访问属性值,那么它就属于伪数组)
Array.from()推荐
Array.prototype.slice()
通过某些方法获取到的Dom元素是一个伪数组,不能正常使用foreach(),除非先转换成数组
6.数组排序
1.插入排序
从第二个元素开始,拿他前面的元素与它比较,如果它比前面的元素小,则这个对比元素往后挪一个位置(实际上是arr[p+1]=arr[p]),接着往左边找对比元素左比较,直到找到最后一个或者比它小的元素位置为止,此时将这个元素放到这个相应的位置(arr[p+1]=temp),每轮循环结束都能保证前面的数据是升序排列的
2.快速排序
将一个数组的中间元素取出(splice,这个方法会改变原数组,同时将将截取的元素以数字的形式返回),然后定义两个左右空数据,遍历这个原数组,将小于被取出元素值的元素放入左边的数组,反之放入右边的数组,一轮循环之后将这左右两个数组和中间元素拼接起来,同时对左右数组进行递归调用
vararr=[4,3,6,7,5,19,2]; varnewArr=quickSort(arr); console.log(newArr); functionquickSort(arr){ if(arr.length<=1)returnarr; else{ varcenter=parseInt((arr.length-1)/2); varcenterValue=arr.splice(center,1)[0]; varleft=[]; varright=[]; for(vari=0;i3.sort排序
7.其他方法
数组反转reverse()将当前数组反转,会改变当前数组
剪接数组splice()会改变当前数组
可以删除任意数组元素,还可以向数组添加元素
语法:arr.splice(index,num,item1,item2...)
index:规定从何处添加/删除元素
num:删除多少元素
后面的参数可以是0个也可以是多个,表示要添加的数组元素
数组剪切slice()根据给定的下标,将两个下标之间的元素以数组形式返回,不会改变原数组
语法:arr.slice(n,m)将arr[n]到arr[m-1]之间的元素以数组形式返回
拼接2个数组concat()
不会改变原数组,而是将拼接后的新数组返回
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。