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((要累加并返回的数,数组元素) => {},初始值)
var list = [ {name:'西瓜',price:2,num:2}, {name:'香蕉',price:4,num:1}, {name:'玉米',price:2,num:5}, {name:'苹果',price:8,num:1} ] var totalPrice = list.reduce((total,item) => { return total + 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,这个方法会改变原数组,同时将将截取的元素以数字的形式返回),然后定义两个左右空数据,遍历这个原数组,将小于被取出元素值的元素放入左边的数组,反之放入右边的数组,一轮循环之后将这左右两个数组和中间元素拼接起来,同时对左右数组进行递归调用
var arr = [4, 3, 6, 7, 5, 19, 2]; var newArr = quickSort(arr); console.log(newArr); function quickSort(arr) { if (arr.length <= 1) return arr; else { var center = parseInt((arr.length - 1) / 2); var centerValue = arr.splice(center, 1)[0]; var left = []; var right = []; for (var i = 0; i < arr.length; i++) { if (arr[i] <= centerValue) { left.push(arr[i]); } else { right.push(arr[i]); } } return quickSort(left).concat(centerValue, quickSort(right)); } }
3.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()
不会改变原数组,而是将拼接后的新数组返回
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持创新互联。