jQueryt静态方法详解 ==> each
==> map
一,each方法
注:为了更好的展示,首先创建一个数组和一个对象 (let 与 arr 区别详解见 笔记 (3))
1 let arr = [1, 3, 5 ,7, 9]; 2 3 let obj = { 4 0:1, 5 2:3, 6 3:5, 7 4:7, 8 length:4, 9 };
对于原生JS,each方法只适合遍历数组,而不适合遍历伪数组(伪数组详解见笔记(1))
代码示例
1 arr.forEach(function (value, index){ 2 console.log(index, value) 3 }) 4 5 obj.forEach(function (value, index){ 6 console.log(index, value) 7 })
结果:
说明
forEach方法的第一个参数为遍历到的元素,第二个参数为当前遍历的索引
原生JS的forEach方法只能遍历数组,而不能遍历伪数组
对于jQuery,each方法既适合遍历数组,也适合遍历伪数组
代码示例
$.each(arr, function (index, value){ console.log(index, value); }) $.each(obj, function (index, value){ console.log(index, value); })
结果
说明
jQuery的 each 方法 第一个参数为 正在遍历元素的索引,第二个参数为遍历到的元素
jQuery的 each方法既适合遍历数组,也适合遍历伪数组
二,map静态方法
简而言之,map静态方法 和 each静态方法大体上相似,都是 JS的 map静态方法只能遍历数组,不能遍历伪数组,而jQuery却都能
两者之间还有的区别就是
each 静态方法的返回值就是 遍历谁就返回谁
map 静态方法的返回值 就是一个空数组
因此,each静方法不支持在回调函数中对遍历的数组进行改造
map静态方法可以在回调函数中通过 return 对遍历的数组进行处理,然后生成一个新的数组返回
1 arr.map(function(value, index, array) { 2 3 }) 4 # 基本语法格式,参数见文生意 5 $.map(arr, function(value, index) { 6 7 })