// 数组去重复
var arr = [1,1,2,3,2,2,3,4,4,5]
//1.将重复的删掉
//遍历所有的元素,准备跟他后面的所有元素做比较
for(var i=0;i<arr.length;i++){
// arr[i] // 所有元素
// 让他跟他后面的所有元素比较
// 遍历他后面所有的元素
for(var j=i+1;j<arr.length;j++){
// 将arr[i]跟他后面的所有元素比较
if(arr[i] === arr[j]){
// 将后面的这个相同元素删除
arr.splice(j, 1)
// 数组删除掉一个元素以后,后面所有元素下标整体向前移动一位,
当下次循环j++以后,就跳过了一个元素 - 所以需要j--
j--
}
}
}
console.log(arr);
// 2.借助一个空数组,将所有不重复的元素放在空数组中
var arr = [1,1,2,3,2,2,3,4,4,5]
var brr = [1,2,3]
var brr = [ arr[0] ]
// 先定义一个空数组,将第一个元素放到这个数组中,遍历从第二个开始的元素,判断是否在brr中,
如果在,下一个,如果不在,就将这个元素放在brr中
for(var i=1;i<arr.length;i++){
var flag = 1 // 定义变量,初始值是1
// arr[i] // arr中从第二个开始的所有元素
// 判断他在不在brr中
// 遍历brr,判断其中的每个元素是否跟arr[i]是相等的
for(var j=0;j<brr.length;j++){
// brr[j] // brr[j]是brr中的每个元素
// 比较
// if(arr[i] != brr[j]){
// // 此时才是brr中第一个元素在比较,不相等,应该看他后面的元素是否相等
// }
// 需要找到,什么时候就该给brr中放元素了 - 时机
// 时机: 在brr所有元素都遍历完了,也没有一个相等 - 才放进去
if(arr[i] === brr[j]){
flag = 2 // 如果在brr的遍历中,有相等过的元素 - 就将flag改成2
break;
}
}
// 当里面小循环执行结束了,才是brr遍历完了
// 但是循环结束后没有判断条件了 - 创造条件
// 判断flag是1还是2就能知道遍历过程中是否相等过了
if(flag === 1){
// 将arr[i]放到brr中
brr.push(arr[i])
}
}
console.log(brr);
// 3.利用对象的键是唯一的,将数组中每个元素都作为对象的键
var arr = [1,1,2,3,2,2,3,4,4,5]
// var obj = {
// 1: '哈哈',
// 2: '呵呵'
// }
// console.log(obj);
// 定义一个空对象
var obj = {}
// 遍历数组,将数组中的每个元素都作为对象的键 - 给对象设置键值对
for(var i=0;i<arr.length;i++){
// arr[i] 数组中每个元素
// 将他写在obj中,作为键
obj[ arr[i] ] = 0
}
console.log(obj);
// 遍历对象,将所有的键,放在一个数组中
var brr = []
for(var key in obj){
brr.push(+key) // 字符串前面放+默认能转成数字
}
console.log(brr);