ES5中新增的数组方法
迭代(遍历)方法:forEach()、map()、filter()、some()、every()
;
一、forEach()方法
array.forEach(function(currentValue,index,arr))
- currentValue:数组当前项的值
- index:数组当前的索引
- arr:数组对象本身
<script>
// forEach 迭代(遍历)数组
var arr = [1,2,3]
var sum = 0;
arr.forEach(function(value,index,array){
console.log('数组元素' + value);
console.log('索引号' + index);
console.log('数组的本身' + array);
//它们的和为
sum = sum + value;
console.log(sum)
})
</script>
二、filter()方法
array.filter(function(currentValue,index,arr))
- filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,
主要用于筛选数组
注意它直接返回一个新数组
- currentValue:数组当前项的值
- index:数组当前的索引
- arr:数组对象本身
<script>
//filter 筛选数组
var arr = [12,5,21,6,7,8];
var newArr = arr.filter(function(value,index){
// return value>=10;
return value%2 === 0;
});
console.log(newArr);
</script>
面试案例:利用filter进行数组去重
<script>
var arr =[1, 2, 3, 1, 2, 4, 'abb', 'abb']
var newArr = arr.filter(function(item,index,arr){
return arr.indexOf(item) === index;
})
console.log(newArr)
</script>
三、some()方法
array.some(function(currentValue,index,arr))
- some()方法用于检测数组中的元素是否满足指定条件,通俗点查找数组中是否有满足条件的元素
注意它返回值是布尔值,如果查找到这个元素,就返回true,如果查找不到就返回false
- 如果找到第一个满足条件的元素,则终止循环,不在继续查找
- currentValue:数组当前项的值
- index:数组当前的索引
- arr:数组对象本身
//1、some是查找数组中是否存在满足条件的值,如果有返回true 否则就返回false
var ac = [1,2,3];
var flag = ac.some(function(value,index){
// return value ==2; 存在2这个参数 返回的是true
return value >=5; //不存在这个条件 返回的是false
})
console.log(flag)
//2、filter 也是查找满足条件的元素 返回的是一个数组 而且是吧所有满足条件的元素返回回来
//2、some 也是查找满足条件的元素是否存在 返回的是一个布尔值 如果查找到第一个满足条件的元素就终止循环
四、map()方法
map() 方法返回一个由原数组中的每个元素调用一个指定方法后的返回值组成的新数组。与forEach方法类似
五、every()方法
对数组中的每一个元素运行给定的函数,如果数组中每一个元素都能通过回调函数的测试,就会返回true,如果其中有一个元素通过回调函数的测试返回的是false,则返回false;