数组加排序
<!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)