一、数组的常用方法
- join() 把函数转为字符串,参数是符号
var arr = [8,1,4,6,7,5,7,5,4,8,7,4]
// join()把数组变为字符串
arr.join("")
console.log(arr)//[8, 1, 4, 6, 7, 5, 7, 5, 4, 8, 7, 4]
- includes() 判断函数中是否存在某个值 返回值是布尔值
var arr = [8,1,4,6,7,5,7,5,4,8,7,4]
// includes()判断数组中是否存在某个值
console.log(arr.includes(4));//true
- indexOf() 判断数组中是否存在某个值 返回的是第一次出现的下标
// indexOf() 判断数组中是否存在某个值,返回第一次出现的下标
var arr = [8,1,4,6,7,5,7,5,4,8,7,4]
console.log(arr.indexOf(4)) //2
- lastIndexOf() 判断数组中是否存在某个值,返回最后一次出现的下标
// lastIndexOf()判断数组中是否存在某个值,返回最后一次出现的下标
var arr = [8,1,4,6,7,5,7,5,4,8,7,4]
console.log(arr.lastIndexOf(4));//11
5.concat() 拼接数组,返回一个新的数组 可以有多个参数
//concat() 拼接数组 返回一个新数组
var arr = [8,1,4,6,7,5,7,5,4,8,7,4]
var arr2 = ["a","b","a"]
var arr3 = [];
var x = arr3.concat(arr,arr2)
console.log(x);// [8, 1, 4, 6, 7, 5, 7, 5, 4, 8, 7, 4, 'a', 'b', 'a']
6.slice()截取数组中的值 两个参数 第一个为截取开始的角标,第二个为结束的角标,注意包前不包后! 返回值为一个新的数组。
// slice() 截取数组中的某个值 (截取开始的角标,结束的角标) 包前不包后 返回一个新的数组
var arr = [8,1,4,6,7,5,7,5,4,8,7,4]
var arr4 = arr.slice(3,7)
console.log(arr4);//[6, 7, 5, 7]
7.splice() 删除 替换 查找 新增
//splice() 删除 替换 查找 新增 (i, 删除的个数,插入的值) 1 在任意位置插入数据 2 删除 3 替换
// 会改变原来的数组
// 用法一、 在任意位置插入数据
var arr = [1,2,3,4,5]
arr.splice(2,0,"a","b","c") //第二个角标开始插入值
console.log(arr);//[1, 2, 'a', 'b', 'c', 3 , 4 , 5]
// 用法二、 删除
arr.splice(1,2)//角标2开始删除,删除两个值
console.log(arr)//[1, 'b', 'c', 3, 4, 5]
// 用法三、替换 本质上就是先删除在新插入值
arr.splice(2,3,"A","B","C")
console.log(arr)// [1, 'b', 'A', 'B', 'C', 5]
8、基本数据类型可以通过typeof来判断 Array.isArray()用来判断是不是数组
二、数组的迭代方式
- foEach(function(v,i,arr){ }) 遍历数组
// 数组的迭代方式
// forEach()遍历数组
// 一个匿名函数
var arr = [12,1,3,4,5,4,5]
// 匿名函数的参数v 数组的值 i 角标 arr 数组自己
arr.forEach(function(v,i){
console.log(v);
})
2.sort(function(a,b){return a - b}) 数组升序排序
var arr = [9,5,7,8,6,11,8,1,7,0]
// sort()排序 默认是按照ASCII码升序
arr.sort(function(a,b){
return a - b;//升序
})
console.log(arr);//[0, 1, 5, 6, 7, 7, 8, 8, 9, 11]
3.sort(function(a,b){retun b -a}) 数组降序排序
var arr = [9,5,7,8,6,11,8,1,7,0]
arr.sort(function(a,b){
return b - a;//降序
})
console.log(arr)//[11, 9, 8, 8, 7, 7, 6, 5, 1, 0]
- map(function(v,i,arr){}) 改变数组中的值,返回一个新的数组 必须return
var arr = [1,2,3,4,5,6,7,8,9]
// 改变数组中的值 必须return
var arr2 = arr.map(function(v,i,arr){
return res = v + 1;
})
console.log(arr2);// [2, 3, 4, 5, 6, 7, 8, 9, 10]
5.filter(function(v,i,arr){}) 过滤器,找到满足条件的值,返回一个新的数组
//filter(function(v,i,arr){}) 过滤器,找到满足条件的值,返回一个新的数组
var arr = [1,4,7,3,2] ;
var res = arr.filter(function (v) {
return v > 2
})
console.log(res);//[4, 7, 3]
6.every(function(v,i){}) 判断数组中是不是每一个值都满足条件
var arr = [10,40,70,38,26] ;
var res = arr.every(function (v) {
return v > 60
})
console.log(res)//false
7.some(function(v,i){}) 判断数组中有没有满足条件的值
//some(function(v,i){}) 判断数组中有没有满足条件的值
var arr = [10,40,70,38,26] ;
var res = arr.some(function (v) {
return v > 60
})
console.log(res);//true
三、回调函数
- callback 把一个函数当做另一个函数的参数
// 回调函数 callback
// 把一个函数做另一个函数的参数
arr = [0,1,2,3,4];
//封装一个循环的递归函数
// 参数 :arr 为一个数组,fn是一个函数!!!必须传入一个函数!
function xunHun(arr,fn){
for(i = 0;i<arr.length;i++){
fn()
}
}
xunHun(arr,function(){
console.log(6555)
})