1.
双重循环,外层循环控制arr数组,内层循环新数组result , 如果arr当前元素等于result当前的元素等于就直接退出循环 , 当j == result.length, 就将arr当前的元素追加到result中
// function uinque(arr) {
// //i从开始遍历arr , 同时创建空数组result(没有重复元素的数据)
// for (var i = 0, result = []; i < arr.length; i++) {
// //遍历result 从j开始
// for (var j = 0; j < result.length; j++) {
// //如果result中当前元素等于arr中
// if (result[j] == arr[i]) {
// break; //遍历及结束,退出循环
// }
// }
// //如果j 等于result的length
// if (j == result.length) {
// //将arr中当前元素追加到result末尾
// result[result.length] = arr[i];
// }
// }
// return result;
// }
// console.log(uinque([111, 222, 3, 5, 88, 55, 55, 6, 6]));
2.
// function unique(arr) {
// // 从0开始遍历,并创建空的hash 和 result 数组
// for (var i = 0, hash = [], result = []; i < arr.length; i++) {
// // 如果hash中以arr当前元素为下标的元素 等于undefined
// if (hash[arr[i]] === undefined) {
// // 就将arr当前元素追加到
// result[result.length] = arr[i];
// hash[arr[i]] = true;
// }
// }
// return result;
// }
// var arr = [1, 2, 3, 3, 2, 1, 5, 6, 9, 8, 7, 4];
// console.log(unique(arr))
3.
// function unique(arr) {
// for (var i = 0; i < arr.length; i++) {
// for (var j = 0; j < arr.length; j++) {
// if (arr[i] == arr[j]) {
// arr.splice(j, 1);
// j --;
// }
// }
// }
// return arr;
// }
// var arr = [1, 2, 3, 5, 8, 9, 4, 5, 3, 5, 4];
// console.log(unique(arr))
4.
// function unique(arr) {
// var obj = {};
// for (var i = 0, result = []; i < arr.length; i++) {
// if (!obj[arr[i]]) {
// // result[result.length] = arr[i];
// result.push(arr[i]);
// obj[arr[i]] = 1;
// }
// }
// return result;
// }
// var arr = [1, 2, 3, 6, 5, 4, 5, 6, 1, 2, 3];
// console.log(unique(arr));