jQuery2.1--each,forEach和map方法

静态方法和实例方法

静态方法直接添加给类,通过类名调用
实例方法添加给类的原型,通过实例(对象)调用

    <script>
        // 1.定义一个类
        function AClass() {
        }
        // 2.给这个类添加一个静态方法
        // 直接添加给类的就是静态方法
        AClass.staticMethod = function () {
            alert("staticMethod");
        }
        // 静态方法通过类名调用
        AClass.staticMethod();

        // 3.给这个类添加一个实例方法
        AClass.prototype.instanceMethod = function () {
            alert("instanceMethod");
        }
        // 实例方法通过类的实例调用
        // 创建一个实例(创建一个对象)
        var a = new AClass();
        // 通过实例调用实例方法
        a.instanceMethod();
    </script>

静态方法之each方法

forEach是js中的方法,用来遍历数组,不能遍历伪数组

语法:数组名.forEach(function(value,index){
//第一个参数value是值,第二个参数index是索引
})

$.each() 是jQuery的方法,用来遍历jQuery对象(伪数组)

语法:$.each( jQuery对象名,function(index, value){
//第一个参数indexi是索引,第二个参数value是值
} )

		<script>
			var arr1 = [1,2,3,4,5] //真数组 用forEach遍历
			var arr2 = {length:5,0:1,1:2,2:3,3:4,4:5} //伪数组 用each遍历
			arr1.forEach(function(value,index){
				console.log(index+":"+value)
			})
			$.each(arr2,function(index,value){
				console.log(index+":"+value)
			})
		</script>

JS中forEach和map的异同

同:
1.都只能遍历数组
2.都通过数组名.map或者数组名.forEach调用。
3.都能接收三个参数(元素值,索引下标,数组名)
异:
forEach没有返回值
map有返回值,可以return。而且不会改变原数组,会返回一个新的数组,数组中的元素为原始数组调用函数处理后的值(原数组进行处理之后对应的一个新的数组。)

		<script>
			var arr = [1, 2, 3, 4, 5]
			var obj = {
				length: 5,
				0: 1,
				1: 2,
				2: 3,
				3: 4,
				4: 5
			}
			var res = arr.forEach(function(value, index) {
				return value
			})
			console.log(res) //undefined
			var res2 = arr.map(function(index, value) {
				return value * 2
			})
			console.log(res2) // (5) [0, 2, 4, 6, 8]
		</script>

jQuery中each和map的异同

同:
1.都可以遍历数组和伪数组
2.通过 $ . map(对象名,function(){})或者 $ .each ( 对象名,function ( ) {} ) 调用
异:

  1. each没有返回值,map有返回值
  2. each中回调函数的顺序:索引值在前,属性值在后 ;map中回调函数的顺序:属性值在前,索引值在后。
<script>
			/*
			jQuery中的each静态方法和map静态方法的区别:
			each静态方法默认的返回值就是, 遍历谁就返回谁
			map静态方法默认的返回值是一个空数组
			
			each静态方法不支持在回调函数中对遍历的数组进行处理
			map静态方法可以在回调函数中通过return对遍历的数组进行处理, 然后生成一个新的数组返回
			*/
			var obj = {
				length: 5,
				0: 1,
				1: 2,
				2: 3,
				3: 4,
				4: 5
			}
			var res = $.map(obj, function(value, index) {
				return value * value
			})
			console.log('map的返回值' + res) // map的返回值1,4,9,16,25
			var res2 = $.each(obj, function(index, value) {
				//return value;
			});
			console.log(res2) //{0: 1, 1: 2, 2: 3, 3: 4, 4: 5, length: 5}
		</script>

forEach,each和map方法总结:

map方法:

不管在js还是在jQuery中,都有返回值,都默认返回一个空数组,可以在回调函数中对传入的参数进行处理,能返回处理后的新数组,而且不会改变原数组(伪数组)

each和forEach:

forEach没有返回值,each有返回值,而且只能返回原对象。

参数顺序:

只有each方法是index在前,value在后。其他三个方法都是value在前,index在后。

发布了119 篇原创文章 · 获赞 1 · 访问量 3988

猜你喜欢

转载自blog.csdn.net/weixin_42139212/article/details/103443029