Jquery 中map和each的区别
<script type="text/javascript"> $(function () { var json = {"Name":"LJW","Age":"24","Phone":"110"}; var arr = [100, 200, 300, 400]; //each 既可以对数组遍历,又可以对字典表遍历,只要是字典表遍历,但没有返回值 $.each(arr, function () { alert(this);//对数组遍历,结果是LJW,24,110,因为this默认的是value的值 }); $.each(json, function (key, value) { alert(key + ":" + value); }); //map是对数组进行遍历,并且有返回值 arr = $.map(arr, function (item) { return item * 2; }); //拓展:通过查看源码可以看到,each内部调用了call方法 function test() { alert(this); } //d第一种 test();//结果是Window ,this指的是Window //第二种 ,通过call方法可以改变this,第一个参数就是this的指向 var a = "abc"; test.call(a);//结果就是“abc” function test2(ar1,ar2) { alert(this+"+"+ar1+"+"+ar2); } test2.call(a, "1,", "2");//给test2传参数 });
///拓展三
var json2 = [{ "Name": "LJW", "Age": "24", "Phone": "110" }, { "Name": "LQQ", "Age": "24", "Phone": "120" }];
$.each(json2, function () {
alert(this.Name);//this代表数组中的每一项,Name,和Age都是可以点出来的
});
</script>