<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<!------forEach()方法-->
<script type="text/javascript">
var oldArr=[1,2,3,4,5];
var sum=0;
var newArr=oldArr.forEach(function(value,index,arr){
//forEach可以修改oldArr的值
return arr[index]=value*10;
return value*10;
});//value值是必须的,其他两个参数,index和arr可选。按照顺序是array.forEach(function(value,index,arr){})
console.log(oldArr);
console.log(newArr);//在这这里,无法像map方法一样获得newArr的值,所以这就是forEach和map方法的一个区别;
</script>
<!----------------------------------------------->
<!--map()方法-->
<script type="text/javascript">
var oldArr=[1,2,3,4,5];
var newArr=oldArr.map(function(value,index,arr){
//map也可以修改oldArr的值
// return arr[index]=value*10;
//如果想保留oldArr,则应该声明一个newArr来获得map方法的返回值
return value*10
})
console.log(oldArr);
console.log(newArr);
</script>
</head>
<body>
</body>
</html>
最后总结一下,map()可以返回值赋给新的数组,forEach()不可以,forEach()默认遍历谁就返回谁。
同样在jQyery中的map和each方法也是一样的。
$(function(){
var arr=[1,2,3,4,5]
var res1=$.map(arr,function(value,index){
console.log(index,value);
});
var res2=$.each(arr,function(value,index){
console.log(index,value);
})
console.log(res1);
console.log(res2);