定义一个数组
var testArray=[100,20,50,46,80,95];
forEach() 方法: 循环原来的数组
语法:arr.forEach(function(value,index){ //回调函数体 }) ES5
语法:arr.forEach((value,index)=>{ //回调函数体 }) ES6
参数说明: value表示数组的元素,index表示数组的索引
testArray.forEach((v,i)=>{
console.log("索引",i,"元素",v);
});
map() 方法: 循环原数组并映射一个新数组出来
映射:源和目标一一对应的方式
语法:arr.map((value,index)=>{ //回调函数体 })
-------------map() 基本使用---------------
testArray.map((v,i)=>{
console.log("索引",i,"元素",v);
});
console.log("原数组",testArray,"新数组",newArray);
-------------map() 高级使用---------------
var new2Array=testArray.map((v,i)=>{
if(v>=90){
return v;
}
});
console.log("原数组",testArray,"新数组1",newArray,"新数组2",new2Array);
//修改新的数组
new2Array.push(50,60);
for (let o of new2Array) {
if(o!=undefined){
console.log(o);
}
}
filter() 方法: 过滤不需要的数组元素
语法:arr.filter((value,index)=>{ //回调函数体 })
testArray=[100,20,50,46,80,95];
var betterArray=testArray.filter((v,i)=>{
if(v>=80){
return v;
}
});
console.log("分数大于等于80分",betterArray);
betterArray.push(85,99);
console.log("分数大于等于80分",betterArray);
console.log("原数组",testArray);
总结:
- forEach、map、filter都可以遍历数组
- forEach操作的原数组,map、filter会返回一个新的数组
- 纯粹的遍历操作使用forEach,如果想得到原数组的克隆使用map,如果想根据条件筛选使用filter