indexOf
function indexOf(arr,search,index){
if(index===undefined) index=0;
for(var i=index;i<arr.length;i++){
if(arr[i]===search) return i;
}
return -1;
}
forEach
function forEach(arr,fn){
for(var i=0;i<arr.length;i++){
if(i in arr) fn(arr[i],i,arr); //如果i在arr中不为空。
}
}
//桥接模式
forEach(arr,function(item,index,arr){
console.log(item,index,arr);
})
map
function map(arr,fn){
var arr1=[];
for(var i=0;i<arr.length;i++){
if(i in arr) arr1[i]=fn(arr[i],i,arr);
}
return arr1;
}
var arr=[1,2,5,,3,6,8];
var arr1=map(arr,function(item){
return item+10;
});
console.log(arr1);
some
function some(arr,fn){
for(var i=0;i<arr.length;i++){
if(i in arr && fn(arr[i],i,arr)) return true;
}
return false;
}
every
function erery(arr,fn){
for(var i=0;i<arr.length;i++){
if(i in arr && !fn(arr[i],i,arr)) return false; //有一个假,就跳出false了
}
return true;
}
filter
function filter(arr,fn){
var arr1=[];
if(arr.length===0) return arr1;
for(var i=0;i<arr.length;i++){
if(fn(arr[i],i,arr)) arr1.push(arr[i]);
}
return arr1;
}
reduce
function reduce(arr,fn,initValue){
var index=0;
if(initValue===undefined){
initValue=arr[0];
index=1;
}
for(;index<arr.length;index++){
initValue=fn(initValue,arr[index],index,arr);
}
return initValue;
}
flatMap(扁平化数组)
var arr=[[1,2,3],[4,5,6,2],[7,5,8,9]];
function reFlat(arr){
var arr1=[];
for(var i=0;i<arr.length;i++){
if(i===0){
for(var index in arr[0]){
arr1[index]=arr[0][index];
}
}else{
for(var index in arr[i]){
arr1[arr1.length]=arr[i][index];
}
}
}
return arr1;
}