过滤数组中的重复值,这里提供六种方法供参考。
方法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 正则的相关内容哦。