js 过滤数组重复值的代码分享(六种方法)

发布时间:2020-08-15编辑:脚本学堂
用js代码过滤数组中的重复值,本文提供了六种不同的方法,有需要的朋友,可以参考下。

过滤数组中的重复值,这里提供六种方法供参考。

方法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 正则的相关内容哦。