IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> jquery1.0 的$.map和$.merge方法详解 -> 正文阅读

[JavaScript知识库]jquery1.0 的$.map和$.merge方法详解

jQuery.extend({
map: function(elems, fn) {
		// If a string is passed in for the function, make a function
		// for it (a handy shortcut)
		if ( fn.constructor == String )
			fn = new Function("a","return " + fn);
//这里翻译成如果fn是字符串 fn = function(a){return a.fn}
		
		var result = [];
		
		// Go through the array, translating each of the items to their
		// new value (or values).
		for ( var i = 0; i < elems.length; i++ ) {
			var val = fn(elems[i],i);

			if ( val !== null && val != undefined ) {
				if ( val.constructor != Array ) val = [val];
				result = jQuery.merge( result, val );
			}
		}

		return result;
	},
})

map:n. 地图;天体图;示意图,分布图;染色体图;(非正式)面孔
v. 绘制地图;了解信息;计划;映现;映射;与……有关;确定基因在染色体中的位置
n. (Map) (美)马普(人名)
这里的elems还是必须要是类数组对象或者数组对象
map函数是生成一个数组对象[],里面保存的是fn返回的属性值,定义了fn的第一个参数为elems的属性值,第二个参数为属性名(0,1,2,3,4),而且这个函数要有返回值,把返回值添加到新数组中,就是把fn的返回值包装成新的数组对象
jQuery.map(elems,fn)就是把elems的子对象映射到新数组对象,fn(elems[i],i)执行函数的参数关联elems的属性值elems[i]和属性i

merge: function(first, second) {
		var result = [];
		
		// Move b over to the new array (this helps to avoid
		// StaticNodeList instances)
		for ( var k = 0; k < first.length; k++ )
			result[k] = first[k];
	
		// Now check for duplicates between a and b and only
		// add the unique items
		for ( var i = 0; i < second.length; i++ ) {
			var noCollision = true;
			
			// The collision-checking process
			for ( var j = 0; j < first.length; j++ )
				if ( second[i] == first[j] )
					noCollision = false;
				
			// If the item is unique, add it
			if ( noCollision )
				result.push( second[i] );
		}
	
		return result;
	}

merge:合并 融合
merge函数是合并两个对象,这两个对象要是类数组对象或者数组对象,就是对象的键是0,1,2,3
例如{0:1,2:2,3:3,length:3} [1,2,3,4]
1:先把first对象的属性值添加到result 新数组中,
2:然后遍历,用fisrt里每一个属性值和second的所有属性值进行比较,当first里的属性值和second的属性值相同,就不添加,
3:当first的属性值和second的属性值不同,就添加
总结:就是把fisrt的属性值添加到新数组中,然后把first和second的不同属性值添加到新数组,最后形成first合并second的属性值的新数组
用第一个对象去合并第二个对象,去掉第二个和第一个相同的属性值

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-07-25 11:33:33  更:2021-07-25 11:34:16 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/2 16:02:09-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码