• 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数据库中导出的表有那些没导入成功.

  • 相关阅读:
    面向对象知识点总结
    并发编程知识点汇总
    网络编程知识点(一)
    常用模块(自己总结,不全)
    Bootstrap学习笔记(九) 进度条
    Bootstrap学习笔记(八) 导航栏&分页
    Bootstrap学习笔记(七) 输入框组
    Bootstrap学习笔记(六) 按钮组
    Bootstrap学习笔记(五) 下拉菜单
    Bootstrap学习笔记(四) 字体图标
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5316618.html
Copyright © 2020-2023  润新知