过滤数组中的重复值,这里提供六种方法供参考。
方法1,
<script language="javascript"> //去除数组中重复值 function getNoRepeat() { return arguments[0].join('‖').match(/(b[^‖]+b)(?!.*‖1b)/ig); } var tmpArr = [1, 'a', 'ab', 'abc', 'd', 1.2, 'a+b', 'd', 'e', 5, 'a', 1, 'h', 'c', 'ab']; var retArr = getNoRepeat(tmpArr); alert(retArr); </script>
方法2,
<script> alert("1,11,1.11,1111,111,11,1,1.11".match(/(bd+(?:.d+)?b)(?!.*,1b)/g)) </script>
方法3,
<script> alert("123450,0,1,2,5,3,2,12,4,1,1,123450".match(/(bd+b)(?!.*,1(,|$))/ig)) </script>
方法4,
<script> alert("123450,0,1,2,5,3,2,12,4,1,1,123450".match(/(bd+b)(?!(?:,[^,]+)*,1(?:,|$))/ig)) </script>
方法5,
<script> //去除数组中重复值 var s = "0,1,2,5,3,2,12,4,1,1,123450"; var sTmp = (","+s.split(",").reverse().join(",")+",").replace(/,([^,]+)(?=,.*,1,)/ig, '').split(",").reverse().join(); sTmp = sTmp.substr(1, sTmp.length-2); alert(sTmp) </script>
方法6,
<script> //去除数组中重复值 var strArr = "123450,0,1,2,5,3,2,12,4,1,1,123450".split(",") var str = "," for(i = 0; i < strArr.length; i++) { if(str.indexOf("," + strArr[i] + ",") == -1)str += strArr[i] + "," } alert(str.substring(1,str.length - 1)) </script>
要说明的是,除了方法6之外,其它去除数组中重复值的方法,全部用到了正则。
因此,建议大家好好学习下js 正则的相关内容哦。