1. forEach()方法
仅遍历数组,对该数组没做任何的改变。
array.forEach(function(currentValue, index, arr){})
currentValue : 数组当前项的值
index:数组当前项的索引
arr; 数组对象本身
<script>
var arr = [7, 4, 10];
var sum = 0;
arr.forEach(function(value, index, array){
console.log('每个数组元素' + value);
console.log('每个数组索引号' + index);
console.log('数组本身' + array);
sum += value;
})
console.log(sum);
</script>
2. map()方法
创建一个新数组,其结果是该数组中每个元素都调用一个提供的函数后返回的结果。不改变原数组,返回一个新数组。
<script>
var array1 = [1, 2, 3, 4, 5];
var y = array1.map(function(value, index){
return value * value;
});
console.log(y); // [1, 4, 9, 16, 25]
console.log(array1); // [1, 2, 3, 4, 5]
</script>
3. filter()方法
array.filter(function(currentValue, index, arr){})
Filter()方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素,主要用于筛选数组,注意它直接返回一个新数组。
currentValue : 数组当前项的值
index:数组当前项的索引
arr; 数组对象本身
<script>
// filter 筛选数组
var arr = [12, 66, 45, 77];
var newArray = arr.filter(function(value, index){
return value > 20;
})
console.log(newArray);
</script>
4. some()方法
array.some(function(currentValue, index, arr){ })
some()方法用于检测数组中的元素是否满足指定条件,查找数组中是否有满足条件的元素。
注意它返回的是布尔值,如果查找到这个元素,就返回true,如果查不到就返回false。
如果找到第一个满足条件的元素 则终止循环,不再继续查找。
currentValue : 数组当前项的值
index:数组当前项的索引
arr; 数组对象本身
<script>
// some 查找数组中是否有满足条件的元素
var arr = [10, 30, 4];
var flag = arr.some(function(value){
return value > 11;
});
console.log(flag); // true
</script>
filter与some的区别:
filter也是查找满足条件的元素,返回的是一个数组,而且是把所有满足条件的元素返回回来。some也是查找满足条件的元素是否存在,返回的是一个布尔值,如果查找到第一个满足条件的元素就终止循环。
filter与forEach的区别:
如果查询数组中唯一的元素,用some方法更合适,因为找到这个元素后,就不再进行循环,效率更高。在forEach和filter里面return true不会终止迭代,在some里面return true可以终止迭代 效率更高。注意some返回的是boolean类型的值,而不是数组,如果需要返回符合条件的数组,则需要先设定一个空数组,再使用push()方法来将符合条件的数据存储起来。
<script>
var arr = ['red', 'green', 'blue', 'pink'];
arr.forEach(function(value){
if(value === 'green'){
console.log('找到了该元素')
return true; // 在forEach里面return不会终止迭代
}
console.log(11);
})
arr.filter(function(value){
if(value === 'green'){
console.log('找到了该元素')
return true; // 在filter里面return不会终止迭代
}
console.log(11);
})
arr.some(function(value){
if(value === 'green'){
console.log('找到了该元素')
return true; // 在some里面return可以终止迭代 效率更高
}
console.log(11);
})
</script>
5. every()方法
every()是用于检测数组中的元素每一项元素是否都满足指定条件,返回的类型是布尔类型,如果该函数每一项元素都满足条件则返回true。有一项不满足则返回flase。
<script>
// evey 查找数组中每一项元素是否都满足条件
var arr = [10, 30, 4];
var flag = arr.every(function(value){
return value > 11;
});
console.log(flag); // false
</script>
6. includes()方法
includes方法用来判断数组是否包含一个指定的值,返回类型是布尔型,如果包含则返回 true,否则返回false。
<script>
var arr = [1, 2, 3, 4, 5]
var arr1 = arr.includes(4);
var arr2 = arr.includes(6);
console.log(arr1); // true
console.log(arr2); // flase
</script>