forEach
- 和for循环一样都是用来遍历数组的+
- 语法:arr.forEach(function(item,index,array){
数组里面有多少元素,函数就执行多少次 - 参数
- 第一个形参:item,表示本次元素循环到的数组元素的值
- 第二个形参:idenx,表示本次当前数组索引
- 第三个形参:array,表示当前正在循环的数组
}
arr.forEach(function(value,i,array){
console.log('=========================')
console.log('本次循环到的是第'+i+'个数组元素')
console.log('本次循环到的数组元素是'+value)
})
console.log(result)
map
- 和forEach类似,只不过可以堆数组中的每一项,返回一个新的数组
- 语法: function(item,index,array){
- 参数功能和forEach一样
- 不过返回值是一个新的数组
}
var arr=[1,3,5,7,9]
var newarr=arr.map(item,index,arr){
// 在这个函数里面可以对原数组的每一项进行操作
//类似于for of
// 这个函数的返回值就是新数组里面的其中一个元素
var temp=item*10
return temp
}
console.log(newarr) // logs ==> [10, 30, 50, 70, 90]
filter
- 和forEach类似,但是可以按照我们的条件进行筛选数组
- 把原始数组中符合条件的筛选出来,组成一个新的数组返回
- 语法arr.fliter(function(item,index,array){
- 有多少元素就遍历多少次
- 不过返回值是一个新的数组
- 当遍历到一个元素item,如果本次return true说明符合条件,则返回该值
- 当遍历到一个元素item,如果本次return flase说明不符合条件,则不返回该值
})
var arr2 = [2000,3000,4000,5000,7000,10000,20000]
var result = arr2.filter(function(item){
if(item>5000){
return true;
}else{
return false;
}
})
console.log(result) //logs ==> [7000,10000,20000]
indexOf
- 用来找到数组中某一项的索引
- 语法: arr.indexOf(“字符串”)
- 如果找到了,返回索引,number类型
- 如果没有找到,返回-1
var arr = ['hello','world','xiaoli',123,'xiaowang',56]
var index = arr.indexOf(123);//index是number类型
console.log(index) //logs==> 3
var index2 = arr.indexOf('laowang');
console.log(index2) //logs==> -1
sort排序
arr.sort([排序函数])
- 元素默认按照转换为的字符串的各个字符的Unicode编码进行排序
- 排序函数可以执行排序规则
- 语法: arr.sort(function(a,b){
- 参数
- a:第一个比较的元素
- b:第二个比较的元素
- 如果返回值< 0 ,那么 a 会被排列到 b
- 如果返回值== 0,a 和 b 的相对位置不变
- 如果返回值> 0 ,b 会被排列到 a 之前
})
var arr = [12000,3000,14000,5000,17000,10000,20000];//从小到大排序
// 从小到大
arr.sort(function(a,b){
// if(a>b){
// return 1; // return a-b
// }
// if(a==b){
// return 0; // return a-b
// }
// if(a<b){
// return -1; // return a-b
// }
// 可以简化成
return a-b
})
console.log(arr) // logs ==> [3000, 5000, 10000, 12000, 14000, 17000, 20000]
// 从大到小
arr.sort(function(a,b){
// // if(a>b){
// // return -1; //return b-a
// // }
// // if(a==b){
// // return 0; //return b-a
// // }
// // if(a<b){
// // return 1; //return b-a
// // }
// // 可以简化成
return b-a;
})
console.log(arr) //logs==>[20000, 17000, 14000, 12000, 10000, 5000, 3000]