js去除重复字符串两种实现方法


Posted in Javascript onJanuary 09, 2013

方法一:

function checkRe(checkid) { var id = window.parent.getQry("ctrid") + "_"; 
var values = window.parent.opener.document.getElementById(id + "txt_dept_name").value; 
var keys = window.parent.opener.document.getElementById(id + "hf_ids").value; 
var ary = checkid.value.split("|"); 
var newsValues = ary[0]; 
var newsKeys = ary[1]; 
if (checkid.checked) { 
values = values + "," + newsValues; 
keys = keys + "," + newsKeys; 
} 
else { 
values = values.replace(new RegExp("," + newsValues), ""); 
keys = values.replace(new RegExp("," + newsKeys), ""); 
} 
values = okd(values); 
keys = okd(keys); 
window.parent.opener.document.getElementById(id + "txt_dept_name").value = values; 
window.parent.opener.document.getElementById(id + "hf_ids").value = keys; 
return; 
} 
//转换成数组,去掉重复,再组合好。 
function okd(str) { 
var ary = str.split(","); 
// 去重的算法 
var json = {}; 
for (var i = 0; i < ary.length; i++) { 
if (ary[i] != "") { 
json["a" + ary[i]] = ary[i]; 
} 
} 
// 查看结果 
var str2 = ""; 
for (var key in json) { 
str2 += "," + json[key]; 
} 
var s = str2.toString(); 
//去掉第一个逗号 
if (s.substr(0, 1) == ',') { 
s = s.substr(1); 
} 
return s; 
} 
function add_all() { 
var ck = document.getElementsByTagName("input"); 
for (i = 0; i < ck.length; i++) { 
if (ck[i].type == "checkbox") { 
ck[i].checked = true; 
checkRe(ck[i]); 
} 
} 
} 
function del_all() { 
var id = window.parent.getQry("ctrid") + "_"; 
window.parent.opener.document.getElementById(id + "txt_dept_name").value = ""; 
window.parent.opener.document.getElementById(id + "hf_ids").value = ""; 
var ck = document.getElementsByTagName("input"); 
for (i = 0; i < ck.length; i++) { 
if (ck[i].type == "checkbox") { 
ck[i].checked = false; 
} 
} 
}

<input id='chk_pkId' type='checkbox' name='chk' onclick='checkRe(this);' value='值|pkId' />

方法二:
function filterRepeatStr(str){ 
var ar2 = str.split(","); 
var array = new Array(); 
var j=0 
for(var i=0;i<ar2.length;i++){ 
if((array == "" || array.toString().match(new RegExp(ar2[i],"g")) == null)&&ar2[i]!=""){ 
array[j] =ar2[i]; 
array.sort(); 
j++; 
} 
} 
return array.toString(); 
}
Javascript 相关文章推荐
javascript 支持链式调用的异步调用框架Async.Operation
Aug 04 Javascript
在IE6下发生Internet Explorer cannot open the Internet site错误
Jun 21 Javascript
客户端 使用XML DOM加载json数据的方法
Sep 28 Javascript
jQuery中slideUp()方法用法分析
Dec 24 Javascript
JS表单验证方法实例小结【电话、身份证号、Email、中文、特殊字符、身份证号等】
Feb 14 Javascript
JQuery选中select组件被选中的值方法
Mar 08 jQuery
vue裁切预览组件功能的实现步骤
May 04 Javascript
详解vue的diff算法原理
May 20 Javascript
微信小程序异步API为Promise简化异步编程的操作方法
Aug 14 Javascript
Vue中Axios从远程/后台读取数据
Jan 21 Javascript
JavaScript日期库date-fn.js使用方法解析
Sep 09 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 Javascript
jquery插件之信息弹出框showInfoDialog(成功/错误/警告/通知/背景遮罩)
Jan 09 #Javascript
javaScript矢量图表库-gRaphael几行代码实现精美的条形图/饼图/点图/曲线图
Jan 09 #Javascript
一行代码实现纯数据json对象的深度克隆实现思路
Jan 09 #Javascript
javascript parseInt() 函数的进制转换注意细节
Jan 08 #Javascript
Raphael一个用于在网页中绘制矢量图形的Javascript库
Jan 08 #Javascript
jquery插件珍藏(图片局部放大/信息提示框)
Jan 08 #Javascript
jquery Mobile入门—外部链接切换示例代码
Jan 08 #Javascript
You might like
php循环检测目录是否存在并创建(循环创建目录)
2011/01/06 PHP
php的sso单点登录实现方法
2015/01/08 PHP
php cookie 详解使用实例
2016/11/03 PHP
一些常用的JS功能函数代码
2009/06/23 Javascript
基于jquery的监控数据是否发生改变
2011/04/11 Javascript
jquery实现固定顶部导航效果(仿蘑菇街)
2013/03/21 Javascript
Json序列化和反序列化方法解析
2013/12/19 Javascript
jQuery绑定事件on()与弹窗的简要概述
2016/04/27 Javascript
BootStrap 智能表单实战系列(十)自动完成组件的支持
2016/06/13 Javascript
微信小程序使用第三方库Immutable.js实例详解
2016/09/27 Javascript
swiper 解决动态加载数据滑动失效的问题
2018/02/26 Javascript
Vue使用zTree插件封装树组件操作示例
2019/04/25 Javascript
微信小程序事件 bindtap bindinput代码实例
2019/08/26 Javascript
ElementUI多个子组件表单的校验管理实现
2019/11/07 Javascript
介绍Python中的__future__模块
2015/04/27 Python
python学习之matplotlib绘制散点图实例
2017/12/09 Python
Python基于xlrd模块操作Excel的方法示例
2018/06/21 Python
PyTorch搭建一维线性回归模型(二)
2019/05/22 Python
python笔记之mean()函数实现求取均值的功能代码
2019/07/05 Python
Python socket非阻塞模块应用示例
2019/09/12 Python
python tkinter GUI绘制,以及点击更新显示图片代码
2020/03/14 Python
Python3 requests模块如何模仿浏览器及代理
2020/06/15 Python
keras的ImageDataGenerator和flow()的用法说明
2020/07/03 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
New Balance英国官方网站:始于1906年,百年慢跑品牌
2016/12/07 全球购物
俄罗斯运动鞋商店:Sneakerhead
2018/05/10 全球购物
移动通信行业实习自我鉴定
2013/09/28 职场文书
春节活动策划方案
2014/01/24 职场文书
《与朱元思书》的教学反思
2014/04/17 职场文书
优秀护士先进事迹
2014/05/08 职场文书
教师见习报告范文
2014/11/03 职场文书
小班上学期个人总结
2015/02/12 职场文书
悬崖上的金鱼姬观后感
2015/06/15 职场文书
烈士陵园扫墓感想
2015/08/07 职场文书
如何用PHP实现多线程编程
2021/05/26 PHP