<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<script>
// 2 for + splice删除 遇见重复的选项
function norepeat(arr){
for(var i=0;i<arr.length;i++){
for(var j=i+1;j<arr.length;){
if(arr[i] == arr[j]){
arr.splice(j,1);
j--;
}
j++;
}
}
return arr;
}
var arr2=[11,6,4,4,5]
var arr1=norepeat(arr2);
console.log(arr1)
</script>
<script>
// 单循环 + indexof 判断每项是否存在 否就推入新数组 是否为-1再进行插入
function unique4(arr){
var newArr= [arr[0]]
for(var i=1;i<arr.length;i++){
if(newArr.indexOf(arr[i]) === -1){
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique4([1,1,2,3,3,4,5]))
</script>
<script>
// sort 排序后循环数组 + 相邻元素比较 比较每一项 相同删除,同时不增加i
function unique(arr){
var arr2=arr.sort();
for(var i=1;i<arr2.length;){
if(arr2[i] === arr2[i-1]){
arr2.splice(i,1)
}else{
i++
}
}
return arr2
}
console.log( unique([1,1,1,3,4,5]))
</script>
<script>
// 判断对象属性是否存在 + 新数组
// 没有属性就存入新数组
function unique3(arr){
var obj={}
var newArr=[]
for(let i=0;i<arr.length;i++){
if(!obj[arr[i]]){
obj[arr[i]] = 1
newArr.push(arr[i])
}
}
return newArr
}
console.log(unique([1,1,3,3,4]))
</script>
<script>
// set 新的数据结构 Set。它类似于数组,但是成员的值都是唯一的,没有重复的值
const unique2=arr=>{
return [...new Set(arr)]
}
console.log(unique2([1,1,1,3,4,4]))
</script>
<script>
// indexof检测当前字符索引,不存在返回-1
// split分离数组
let url = 'http://www.baidu?wd=js&name=rose'
function queryUrlParameter(url){
const obj={}
if(url.indexOf('?') < 0 ) return obj
url= url.split('?')[1]
urlArr=url.split('&')
urlArr.forEach(function(item){
let newArr = item.split('=')
obj[newArr[0]] = newArr[1]
})
return obj
}
console.log(queryUrlParameter(url))
</script>
<script>
let url1 = 'http://www.baidu?wd=js&name=ccfont'
function queryUrlParameter1(url1){
let reg=/([^?&=]+)=([^?&=]+)/g
let obj={}
url1.replace(reg,function(){
obj[arguments[1]]=arguments[2]
})
return obj
}
console.log('正则',queryUrlParameter1(url1))
</script>
<script>
function unique(arr){
return arr.reduce((prev,cur)=>prev.includes(cur)?prev:[...prev,cur],[]);
}
var arr=[1,1,2,3,4,2]
console.log(unique(arr))
</script>
</body>
</html>
var arr=[1,5,3,1,2,67,8]
function quick(arr){
if(arr.length <= 1){
return arr;
}
var contentIndex = Math.floor(arr.length / 2);
var contentValue = arr.splice(contentIndex,1)[0];
var leftArr = [];
var rightArr = [];
for(let i = 0;i<arr.length;i++){
let item = arr[i];
item > contentValue ? rightArr.push(item): leftArr.push(item);
}
return quick(leftArr).concat(contentValue,quick(rightArr));
}
arr= quick(arr);
console.log(arr)