<script>
var arr = [1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 4, 3, 2, 1, 2]
// 1. 准备一个新的数组,遍历 arr ,如果新数组里面没有,那么就添加有就什么也不做
// indexOf 方法,如果you就返回索引,如果没有就返回 -1
const newArr = []
for (var i = 0; i < arr.length; i++) {
// 先判断一下 newArr 里面有没有 1
// 先判断一下 newArr 里面有没有 2
// 先判断一下 newArr 里面有没有 3
// 先判断一下 newArr 里面有没有 4
// 先判断一下 newArr 里面有没有 3
if (newArr.indexOf(arr[i]) === -1) {
newArr.push(arr[i])
}
}
console.log(newArr)
</script>
var arr = [1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 4, 3, 2, 1, 2]
// 2. 先排序,判断相邻的两个是否一样,如果一样干掉一个
// arr.sort(function (a, b) { return a - b })
for (var i = 0; i < arr.length; i++) {
// 判断前一个和后一个是否一样
// 前一个 arr[i]
// 后一个 arr[i+1]
if (arr[i] === arr[i+1]) {
// 去掉一个
arr.splice(i, 1)
i--
}
}
console.log(arr)
// 3. 利用一个对象不重名的特点
var arr = [1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 4, 3, 2, 1, 2]
var obj = {}
var newArr = []
for (var i = 0; i < arr.length; i++) {
obj[arr[i]] = '随便'
}
// 遍历对象,每一个 key 添加到新数组里面
for (var key in obj) {
newArr.push(key - 0)
}
console.log(newArr)
var arr = [1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 4, 3, 2, 1, 2]
// 4. new Set()
// - es6 新增的一个数据格式,类似于一个数组
// - 不允许存储重复的值
var a = [...new Set(arr)]
console.log(a)
var arr = [1, 2, 3, 4, 3, 2, 1, 2, 3, 4, 5, 6, 4, 3, 2, 1, 2]
// 5.利用过滤的方法
var newArr = arr.filter((item, index, arr) => {
return arr.indexOf(item) == index
})
console.log(newArr)