<script type="text/javascript">
let arr = [0,2,2,3,4,5,3,3,5,4,'l','a','p','l','p','a'];
//第一种利用数组的indexOf()
let arrs = []
for (let i=0; i<arr.length; i++) {
if (arrs.indexOf(arr[i]) < 0) {
arrs.push(arr[i])
}
}
console.log(arrs) //[0, 2, 3, 4, 5, "l", "a", "p"]
//第二种利用filter()函数
let arrf = arr.filter(function (ele,index,self) {
//console.log(ele+'_'+index+'_'+self)
return self.indexOf(ele) === index
})
console.log(arrf) //[0, 2, 3, 4, 5, "l", "a", "p"]
//第三种利用ES6的Set数据结构,Set类似数组,但里面的元素不重复
let arry = [...new Set(arr)]
console.log(arry) //[0, 2, 3, 4, 5, "l", "a", "p"]
//第四种利用jQuery的inArray
let jqarr = [];
for(let i=0; i<arr.length; i++){
if ($.inArray(arr[i],jqarr) == -1) {
jqarr.push(arr[i])
}
}
console.log(jqarr) //[0, 2, 3, 4, 5, "l", "a", "p"]
//第五种数组ES6的includes
let inarr = [];
for (let s of arr) {
if (!inarr.includes(s)) {
inarr.push(s)
}
}
console.log(inarr) //[0, 2, 3, 4, 5, "l", "a", "p"]
//第六种利用Array.from方法可以将 Set 结构转为数组。
function dedupe (array) {
return Array.from(new Set(array))
}
console.log(dedupe(arr)) [0, 2, 3, 4, 5, "l", "a", "p"]
</script>
</head>
<body>
</body>
原理都是一个,方法可能有很多,这是我个人认为更容易理解的六种方法。
六种数组去重复的方法
最新推荐文章于 2024-10-05 15:47:34 发布