数组ES5新增方法
-
indexOf
功能:查找目标元素,找到返回下标,找不到返回-1 参数:indexof(目标元素); 返回值:找到返回下标,找不到返回-1 注意事项:若出现重复的元素,则只能查找第一个出现的元素下标
var arr=[7,8,6,3,2,0] console.log(arr.indexOf(4));//-1,没有
案例:数组去重:
数组去重 var arr=[4,5,3,2,3,5,8,7,4,3]; var arrN=[]; for(var i=0;i<arr.length;i++){ if(arrN.indexOf(arr[i])==-1){ arrN.push((arr[i])); } }console.log(arrN);
-
forEash
功能:对数组的所有元素执行某种相同的操作 参数:forEash(回调函数) 回调函数参数:回调函数(数组元素的值,[下标,元素所在的数组]) 返回值:无
var arr=[1,2,3]; function fun(x,index,a){ a[index]+=10; } arr.forEach(fun); console.log(arr); //[11,12,13]
-
map:
功能:和forEash基本一模一样,多一个返回值 参数:map(回调函数) 回调函数参数:回调函数(数组元素的值,[下标,元素所在的数组]) 返回值:用回调函数return的数据,构成一个数组
var arr=[1,2,3]; function fun(x,index,a){ a[index]+=10; return a[index]; } var arr1=arr.map(fun); console.log(arr1); //[11,12,13]
-
filter
功能:按条件过滤元素 参数:filter(回调函数) 回调函数参数:回调函数(数组元素的值,[下标,元素所在的数组]) 返回值:根据当前回调函数return的布尔值,决定是否返回当前元素本身
var arr=[4,5,6,2,1,2,3]; function fun(x){ if(x%2==1){ return true; }else{ return false; } } var arr1=arr.filter(fun); console.log(arr1); //[5,1,3]过滤偶数
回调函数
回调函数:一个被当做参数的函数(函数调用函数) 解决问题:将自定义模块传入至第三方模块
function f1(f){//第三方代码,闭园代码 // f==f2; // f()==f2() f();//这一步是第三方调用的,和自定义模块设计无关 } var f2=function(){ //自定义模块 console.log("f2"); } f1(f2);//函数的调用 //f2
-