1.基本数组方法
push pop unshift shift includes indexOf slice splice join concat reverse
2.数组的扩展方法
map sort forEach filter some every reduce
<script>
//回调函数
function map(arr,fn){
for(var i=0;i<arr.length;i++){
arr[i]=fn(arr[i]);
}
return arr;
}
map([1,2,3],function(value){ //fn是形参 value 是形参 接fn(arr[i]) 里面的arr[i]
return value*value;
})
console.log( map([1,2,3],function(value){
return value*value;
}))
</script>
<script>
//map方法
var list=[1,2,3];
var res=list.map(function(value,index,arr){
return value*value+10;//必须有return 不然返回的就是undefined
})
console.log(res);
</script>
<script>
//sort()方法
var arr=[1,3,56,78,49,12,22];
arr.sort(function(a,b){
return a-b;//sort 默认按字母排序 传入回调 可以按数字大小排序
})
console.log(arr);
</script>
<script>
//forEach 方法
var arr1=[1,4,7,8,9];
var sum=0;
arr1.forEach(function(value,index,arr){
sum+=value;
})
console.log(sum);
</script>
<script>
//自己封装forEach 方法
var sum=0;
function forEach(arr,cb){//把函数的声明当做实参传入另外一个函数的调用,函数执行由A函数执行 实参的函数会被变量接收
for(var i=0;i<arr.length;i++){
//cb();
cb(arr[i],i,arr);
}
}
var arr=[1,2,3,4];
forEach(arr,function(currentValue,currenIndex,arr){
//console.log(currentValue,currenIndex,arr)
sum+=currentValue
});
console.log(sum);
</script>
<script>
//filter () 过滤后拿到的是数组
var arr1=[1,23,5,7,56,4];
var res=arr1.filter(function(value,index,arr){
return value>10;
});
console.log(arr1);
console.log(res);//返回符合条件的数组
</script>
<script>
//some() 过滤后拿到的是布尔值 遇到true就终止
var arr2=[1,23,5,7,56,4];
var res=arr2.some(function(value,index,arr){
console.log(value);
return value>10;
})
console.log(arr2);
console.log(res);//true
</script>
<script>
//every() 过滤后拿到的是布尔值 遇到false就终止
</script>
<script>
//reduce 数组的迭代方法 reduce(function(total,currentValue,currenIndex,arr))
//求和
var arr=[1,2,3,4];
var res=arr.reduce(function(total,value){
total+=value;
return total;
},0)//这里的0 是total 的初值 如果不写 默认是数组的第0项 arr[0]
console.log(res);//10
//map
var res1=arr.reduce(function(total,value){
total.push(value*1.3);
return total;
},[])//total 赋值为[]
console.log(res1);//[1.3, 2.6, 3.9000000000000004, 5.2]
//去重
var arr2=[1,2,3,3,3,2,4,5,5];
var res2=arr2.reduce(function(total,value){
if(!total.includes(value)) {
total.push(value);
}
return total;
},[])
console.log(res2);// [1, 2, 3, 4, 5]
</script>`里插入代码片