数组去重的3种方法
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
一、使用for循环+indexof去重
声明新数组,向新数组添加元素时.先判断该元素是否存在,存在不添加,不存在,再添加
<script>
var arr = [11, 22, 33, 44, 11, 33, 22, 99, 22]
newArr = []
for (var i = 0; i < arr.length; i++) {
newArr.indexOf(arr[i]) == -1 ? newArr.push(arr[i]) : ''
}
console.log(newArr);
</script>
二、使用filter方法筛选数组去重
<script>
//filter 方法筛选数组
var arr = [11, 22, 33, 44, 11, 33, 22, 99, 22]
var newArr = arr.filter(function (v, i) {
return arr.indexOf(v) === i
})
console.log(newArr);
</script>
三、使用对象方法去重
对象中的属性是不允许重复的.
// 将数组的元素,当做对象的属性名,将其出现的次数当做属性值
<script>
var strArr = ['a', 'b', 'c', 'a', 'c', 'd'];
var obj = {}
strArr.forEach(function (v, i) {
if (!obj[v]) {
obj[v] = 1
} else {
obj[v]++
}
})
console.log(obj);
</script>