数组的常见方法
总结了十种数组的常见方法
- reduce的用法,reduce名为收敛,叠加,返回的是叠加后的结果。reduce接受两个参数,第一个参数是回调函数,第二个参数是初始值。回调函数有四个参数,
a、total(必填)为当前所有的累积结果
b、cur(必填)是当前的值
c、currindex是当前索引
d、arr是调用方法的数组
let result=[1,2,3,4,5].reduce((total,cur,currindex,arr,)=>{ return prev+next
},init)
console.log(result)//15
手写reduce源码
Arry.prototype.myReduce=function(fn,prev){
for(let i=0;i<this.length;i++){
if(typeof prev=='undefined'){
prev=fn(this[i],this[i+1],i+1,this)
++i;
}else{
prev=fn(prev,this[i],i,this)
}
}
return prev
}
2.forEach 接收一个函数,函数两个参数item和index
1item,当前元素
2index,当前元素的序号
手写forEach源码
Array.prototype.forEach=function(fn){
for(let i=0;i<this.length;i++){
fn(this[i],i)}
}
3.map返回值,返回值是一个新数组
手写map源码
Array.prototype.map=function(fn){
let arr=[];
for(let i=0;i<this.length;i++){
arr.push(fn(this[i],i))}
return arr
}
4.filter 过滤 如果返回true比爱哦是留下 返回false表示删除 返回过滤后的新数组
let arr=[1,2,3]
let filterArr=arr.filter(item=>{
return item>2})
5.find 查找,返回查找的那一项 找到后就不会继续查找了
[1,2,3].find(item=>{
return item===2})
6.some找到后返回true
[1,2,3].some(item=>{
return item===2})
7.every没找到后返回false
8.includes 是否包含某个值
9.Array.form()希望将类数组转化为数组,类数组就是有length属性的对象
function a(arguments){
console.log(eval(arguments.join('+')))
}
10.of()
let arr=Array.of(3)
console.log(arr)//[3]