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 相关文章推荐
jquery事件机制扩展插件 jquery鼠标右键事件
Dec 21 Javascript
各浏览器对document.getElementById等方法的实现差异解析
Dec 05 Javascript
node.js中的path.join方法使用说明
Dec 08 Javascript
javascript实现汉字转拼音代码分享
Apr 20 Javascript
javascript实现倒计时并弹窗提示特效
Jun 05 Javascript
javascript中JSON对象与JSON字符串相互转换实例
Jul 11 Javascript
jQuery实现带渐显效果的人物多级关系图代码
Oct 16 Javascript
JavaScript常用函数工具集:lao-utils
Mar 01 Javascript
微信小程序 页面传参实例详解
Nov 16 Javascript
谈谈JavaScript中浏览器兼容问题的写法小议
Dec 17 Javascript
浅析vue中常见循环遍历指令的使用 v-for
Apr 18 Javascript
浅谈JavaScript中this的指向更改
Jul 28 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
PHP生成条形码大揭秘
2015/09/24 PHP
PHP实现接收二进制流转换成图片的方法
2017/01/10 PHP
php判断str字符串是否是xml格式数据的方法示例
2017/07/26 PHP
PHP/ThinkPHP实现批量打包下载文件的方法示例
2017/07/31 PHP
学习thinkphp5.0验证类使用方法
2017/11/16 PHP
为jquery.ui.dialog 增加“在当前鼠标位置打开”的功能
2009/11/24 Javascript
不用构造函数(Constructor)new关键字也能实现JavaScript的面向对象
2013/01/11 Javascript
Nodejs进程管理模块forever详解
2014/06/01 NodeJs
js实现按一下删除键删除整个单词附demo
2014/09/05 Javascript
jquery实现弹出层登录和全屏层注册特效
2015/08/28 Javascript
jquery ajax双击div可直接修改div中的内容
2016/03/04 Javascript
基于jquery实现轮播焦点图插件
2016/03/31 Javascript
jQuery 出现Cannot read property ‘msie’ of undefined错误的解决方法
2016/11/23 Javascript
JS实现动画兼容性的transition和transform实例分析
2016/12/13 Javascript
Vue 表单控件绑定的实现示例
2017/08/11 Javascript
详解Vue中使用Echarts的两种方式
2018/07/03 Javascript
基于Angular中ng-controller父子级嵌套的相关属性详解
2018/10/08 Javascript
jQuery实现合并表格单元格中相同行操作示例
2019/01/28 jQuery
[02:54]辉夜杯主赛事第二日败者组 iG.V赛后采访
2015/12/26 DOTA
[01:46]辉夜杯—打造中国DOTA新格局
2015/12/25 DOTA
[01:10:49]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第二场 8.24
2018/08/25 DOTA
详谈Python3 操作系统与路径 模块(os / os.path / pathlib)
2018/04/26 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
pytorch实现特殊的Module--Sqeuential三种写法
2020/01/15 Python
Python实现对adb命令封装
2020/03/06 Python
Python导入数值型Excel数据并生成矩阵操作
2020/06/09 Python
对python中list的五种查找方法说明
2020/07/13 Python
HTML+CSS3模拟心的跳动实例代码
2017/09/05 HTML / CSS
福克斯租车:Fox Rent A Car
2017/04/13 全球购物
数据库基础的一些面试题
2012/02/25 面试题
电子信息毕业生自荐信
2013/11/16 职场文书
微型企业创业投资计划书
2014/01/10 职场文书
骨干教师培训制度
2014/01/13 职场文书
Python 如何将integer转化为罗马数(3999以内)
2021/06/05 Python
分享Python获取本机IP地址的几种方法
2022/03/17 Python