三者都可以遍历数组,但各自的作用不同,有其特性。
1.forEach(function(value,index,array) { })
专门用来遍历数组;不改变原数组;没有返回值
<script>
var arr = [1, 2, 3, 5, 6, 7, 89];
// 遍历数组
var rel = arr.forEach(function(value, index, arr) {
console.log(value); //遍历数组arr的每一个元素
console.log(index); //遍历数组arr的下标
console.log(arr); //打印数组本身
})
console.log(arr); // [1, 2, 3, 5, 6, 7, 89]
console.log(rel); //undefined
</script>
伪数组不能使用forEach方法遍历数组。会报错
<script>
function fun() {
arguments.forEach(function(value) {
console.log(value);
})
};
fun(1, 2, 3, 4, 5, 6, 7); //报错了
</script>
2、map(function(value,index,array))
可以用来遍历数组,但是有返回值,返回值为操作加工后的原数组元素按照原顺序组成的一个新数组。不改变原数组。
<script>
var arr = [1, 2, 3, 5, 6, 7, 89];
// 遍历数组
var rel = arr.map(function(value, index, arr) {
// value 当前元素
// index 当前元素的下标
// arr 当前数组
console.log(value + '--' + index);
console.log(arr);
//对原数组元素进行加工并返回到新数组中。
return value + '春';
});
console.log(rel);
console.log(arr);
</script>
3、filter(function(vlaue,index,array))
可以遍历数组,具有返回值,返回值为符合条件的元素组成的新数组,不改变原数组
<script>
var arr = [56, 32, 78, 11, 23, 103, 45];
var rel = arr.filter(function(value, index, arr) {
//将符合返回条件的元素返回到新数组中
return value > 73;
})
console.log(rel);
console.log(arr);
</script>
多用于在数据渲染时对数据进行过滤,将符合条件的数据挑选出来。