JS中比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选)

比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选)

文件: diff.js

// 示例用法
/*

var str1 = "tie, mao, 55";
var str2 = "tie, mao, csdn";
var result = diff(str1, str2, ‘,‘); // 对象
var rs = "" + result;   // " 55, csdn"
var df1 = result.diff1; // [" 55"]
var df2 = result.diff2; // [" csdn"]

*/

// 比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选)
function diff(str1, str2, separator){
	//
	str1 = str1 || "";
	str2 = str2 || "";
	separator = separator || ",";
	// arr中有ele元素
	function hasElement(arr, ele){
		// 内存循环
		var hasItem1 = false;
		for(var i2=0; i2 < arr.length; i2++){
			//
			var item2 = arr[i2] || "";
			if(!item2){
				continue;
			}
			//
			if(ele == item2){
				hasItem1 = true;
				break;
			}
		}
		return hasItem1;
	};
	function inAnotB(a, b){ // 在A中,不在B中
		var res = [];
		for(var i1=0; i1 < a.length; i1++){
			var item1 = a[i1] || "";
			if(!item1){
				continue;
			}
			var hasItem1 = hasElement(b, item1);
			if(!hasItem1){
				res.push(item1);
			}
		}
		return res;
	};
	//
	var list1 = str1.split(",");
	var list2 = str2.split(",");
	//
	var diff1 = inAnotB(list1, list2);
	var diff2 = inAnotB(list2, list1);

	// 返回结果
	var result = {
		diff1 : diff1
		,
		diff2 : diff2
		,
		separator : separator
		,
		toString : function(){
			//
			var res = this["diff1"].slice(0);
			res = res.concat(this["diff2"]);
			//
			return res.join(this["separator"]);
		}
	};
	//
	return result;
};

请根据需要使用, 我用来比较在2个Oracle数据库中导出的表有那些没导入成功.

时间: 2024-08-03 12:50:57

JS中比较2个字符串内元素的不同(字符1, 字符2, 分隔符可选)的相关文章

JS中比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选)

比較2个字符串内元素的不同(字符1, 字符2, 分隔符可选) 文件: diff.js // 演示样例使用方法 /* var str1 = "tie, mao, 55"; var str2 = "tie, mao, csdn"; var result = diff(str1, str2, ','); // 对象 var rs = "" + result; // " 55, csdn" var df1 = result.diff1

[2] D3.js中如何使用数据和选择元素

对D3.js或数据可视化有兴趣的朋友欢迎到 www.ourd3js.com 讨论. 接着上一讲的内容,这次讨论如何选择元素和使用数据. 现在页面中有三行文字,代码为: <p>Hello World 1</p> <p>Hello World 2</p> <p>Hello World 3</p> 定义一个集合set,里面有三个元素: var set = ["I like dog","I like cat&qu

Js中Date格式化为字符串

惭愧,混迹博客园2年了,还没写过什么.最近不太忙,就写一下Js中Date对象的字符串转换吧. 直接贴代码,欢迎各位拍砖,吐槽! /*格式化时间 *formatStr 格式,如:YY-MM-DD hh:mm:ss.Y-M-D h:m:s *只有一个M时,月份小于十时前面不追加零,D.h.m.s雷同 */Date.prototype.toStringFormat = function (formatStr) { if (formatStr == null || formatStr == '') re

js中的数组和字符串的一些方法

数组的一些方法: 1.join()和split()方法 <script type="text/javascript">var x;var a=new Array();a[0]="XHTML";a[1]="CSS";a[2]="JavaScript";alert(a.join());alert(typeof(a.join));alert(typeof(a));</script>join() 方法用于把数组

JS中的本地对象,内置对象和宿主对象

首先解释下宿主环境:一般宿主环境由外壳程序创建与维护,只要能提供js引擎执行的环境都可称之为外壳程序.如:web浏览器,一些桌面应用系统等.即由web浏览器或是这些桌面应用系统早就的环境即宿主环境. 本地对象 ECMA-262 把本地对象(native object)定义为“独立于宿主环境的 ECMAScript 实现提供的对象”. 再来看一下,“本地对象”包含哪些内容: Object.Function.Array.String.Boolean.Number.Date.RegExp.Error.

JS中数据类型、原始数据、内置对象、包装类型对象、typeof

JS中数据类型.内置对象.包装类型对象.typeof关系  https://segmentfault.com/a/1190000018275384 JavaScript 数据类型和数据结构   https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Data_structures 原始数据 https://developer.mozilla.org/zh-CN/docs/Glossary/Primitive 原文地址:https://www

清理html中空白符/空格/换行在行内元素中产生的间距

问题:行内元素之间产生间隔 原因:换行符,Tab制表符,空格产生间隔 解决方法: 1.行内元素写成一行 2.设置font-size为0px 把父级文本设置为0px; 再为需要显示文字的行内元素设置文字大小即可 如果需要间距可以设置其margin,这时的间距是可以自己控制的.

js 中一些重要的字符串方法

String 对象方法 方法 描述 charAt() 返回在指定位置的字符. charCodeAt() 返回在指定的位置的字符的 Unicode 编码. concat() 连接两个或更多字符串,并返回新的字符串. fromCharCode() 将 Unicode 编码转为字符. indexOf() 返回某个指定的字符串值在字符串中首次出现的位置. includes() 查找字符串中是否包含指定的子字符串. lastIndexOf() 从后向前搜索字符串,并从起始位置(0)开始计算返回字符串最后出

JS中的数组、字符串小结

数组:引用/复合数据类型 数组里面可以存储任何的数据类型,例如数组.字符串.数字.布尔值,是一个变量,过程中可以被改变. 数组的存储是分为两个部分:程序运行段和堆 程序运行段(编译之后分配的空间大小不可改变):存储着数组的地址 堆(空间大小可以改变):存储着数组的元素,例如数组.字符串.数字.布尔值 程序运行时是通过程序运行段中存储的数组地址找到堆中对应的元素. var arr3 = [10,20,30]: var arr1 = ["abc", 2,true,arr3]: var ar