each,map,grep的区别

var arr = ["aa","bb","{name:apple}"];

1.each的使用

var a = $.each(arr,function(index,value){

  console.log(this.toString()+"---->>");//结果为aa---->>  //bb---->>  //{name:apple}---->

})

console.log(a);//a的结果为aa,bb,{name:apple}

2.map的使用

var b = $.map(arr,function(value,index){

  return value ="ff";//map中没有this

})

console.log(b);//b的结果为ff,ff,ff

3.grep的使用

var c = $.grep(arr,function(value,index){

  //return value.indexOf("a")>=0//grep中没有this

  return value="ff"

})

3.1 console.log(c);//c的结果为aa,{name:apple};

3.2 console.log(c);//c的结果为aa,bb,{name:apple};

总结:

1.回调函数的参数的顺序的不同,

  1.1each是(i,v)

  1.2map和grep是(v,i)

2.返回值得不同

  2.1map是返回一个新的数组

  2.2each和grep还是原来的,但是grep可以返回选取数组的子集

3.是否有当前迭代对象this

  3.1each有

  3.2map和grep没有

each()在数组中的每个元素都调用别的函数时很有用

map()在更改数组中的所有原始值时很有用

grep()在选取数组的子集时很有用

 <!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<meta charset="utf-8" />
<link rel="stylesheet" href="style/style.css">
<script src="js/jquery-1.10.2.min.js"></script>
<script>
$(function () {
var a = ["12", "23", "34"];
var b = ["12", "14", "23"];
var c = $("div");
var each1 = $.each(a, function () {
var x = this//$(this)-->当前迭代对象(有this)
console.log($(this) + "----each1");
})
var each2 = $.each(c, function () {
var x = this//$(this)-->当前迭代对象(有this)
console.log($(this) + "----each2");
})
//不能这么用
//var each3 = a.each(function () {
//})
var each4 = c.each(function () {
var x = this//$(this)-->当前迭代对象(有this)
console.log($(this) + "----each4");
})
var map1 = $.map(c, function () {
var z = this //$(this)-->window
console.log($(this) + "--1--map1");
});
var map2 = $.map(a, function () {
var z = this//$(this)-->window
console.log($(this) + "--2--map2");
});
var map3 = a.map(function () {
var x = this//$(this)-->window
console.log($(this) + "--3-map3");
});
var map4 = c.map(function () {
var x = this//$(this)-->当前迭代对象(有this)
console.log($(this) + "--4--map4");
});
var grep1 = $.grep(a, function () {
var c = this//$(this)-->window
console.log($(this) + "----grep1");
})
var grep2 = $.grep(c, function () {
var c = this//$(this)-->window
console.log($(this) + "----grep2");
})
//不能这样使用
//var grep4 = c.grep(function () {
//})
})
</script>
</head>
<body>
<div class="border-box">1</div>
<div class="padding-box">2</div>
<div class="content-box">3</div>
<div class="solarLeft"> 4</div>
</body>
</html>
上一篇:java变量命名规则


下一篇:js 前端常用排序算法总结