// const arrayTwosum = (nums,target) =>{
// indexs = []
// for(let i=0;i<nums.length;i++){
// for(let j=i+1;j<nums.length;j++){
// if(nums[i]+nums[j]==target){
// indexs.push([i,j])
// }
// }
// }
// return indexs
// }
// arrayTwosum([6,7,2,5,0],7)
// 第二题
// 给定一个非空整数数组,除了某个元素只出现一次以外,
// 其余每个元素均出现两次。找出那个只出现了一次的元素。
// const findOne = (arr)=>{
// temparr = []
// for(let i=0;i<arr.length;i++){
// if(temparr.includes(arr[i])){
// index = temparr.indexOf(arr[i])
// temparr.splice(index,1)
// }else{
// temparr.push(arr[i])
// }
// }
// console.log(temparr)
// }
// arr = [5,0,0]
// findOne(arr)
// 第三题
// 有一个嵌套层次很深的对象,key 都是 a_b 形式
// 需要改成 ab 的形式,注意不能用递归。
// let a = {
// a_y: {
// a_z: {
// y_x: 6
// },
// b_c: 1
// }
// }
// const regular = (obj)=>{
// try{
// const str = JSON.stringify(obj).replace(/_/g,"");
// console.log(str)
// return JSON.parse(str)
// } catch(error){
// return obj
// }
// }
// regular(a)
// 第四题 旋转数组
// 给定一个数组,将数组中的元素向右移动k个位置,其中k是非负数
// const move = (arr,k)=>{
// for(i=0;i<arr.length;i++){
// if(i+k<arr.length){
// arr2[i+k]=arr[i]
// }else{
// arr2[i+k-arr.length]=arr[i]
// }
// }
// console.log(arr2)
// }
// arr=[1,6,3,7]
// let arr2 = arr.slice(); // slice是对数组可以深拷贝,但对对象不能
// k=2
// move(arr,k)
// let arr1 = [{x:1}, {y:2},3];
// let arr2 = arr1.slice();
// let arr3 = Object.assign(arr1);
// arr2[2] = 100;
// arr2[0].x = 10
// arr3[2] = 200;
// console.log(arr1); // [ { x: 1 }, { y: 2 } ]
// console.log(arr2); // [ { x: 100 }, { y: 2 } ]
// console.log(arr3); // [ { x: 200 }, { y: 2 } ]
// const rotate=(nums,k)=>{
// const l = nums.length
// k = k % l
// for(i=0;i<k;i++){
// nums.unshift(nums.pop(i))
// }
// }
// nums=[1,6,3,7]
// k=3
// rotate(nums,k)
// console.log(nums)
// 第五题
// 写一个函数 判断是否是3的幂次方
// const judge3mi = (k) => {
// if(k==3){
// console.log('yes')
// return
// }
// let i = 1
// while(i>0){
// result = 3*(i*3)
// if(result==k){
// console.log('yes')
// return
// }
// if(result>k){
// console.log('no')
// return
// }
// i++
// }
// }
// judge3mi(k)
// const isPowerOfThree = function (n) {
// if (n < 1) {
// return false;
// }
// while (n > 1) {
// // 如果该数字不能被 3 整除,则直接输出 false
// if (n % 3 !== 0) {
// return false;
// } else {
// n = n / 3;
// }
// }
// return true;
// };
// 第六题
// 验证回文,忽略字母大小写,只考虑字母和数字,空格算有效字符
// const isPalindrome = (s) =>{
// const arr = s.toLowerCase().replace(/[^A-Za-z0-9 ]/g,'')
// console.log(arr)
// const newArr = arr.split('').reverse().join('')
// return arr===newArr
// }
// str = "A man, nam a"
// console.log(isPalindrome(str))
// 第七题,以下代码输什么?
// var length = 10
// function fn(){
// console.log(this.length)
// }
// var obj = {
// length:5,
// method:function(fn){
// fn()
// arguments[0]()
// console.log(arguments,'arguments')
// }
// }
// obj.method(fn) // 10 1
// obj.method(fn, 123) // 10 2
// 防抖和节流
// function debounce(fun,delay){
// let timer
// return function(){
// if(timer) clearTimeout(timer)
// let args = arguments
// timer = setTimeout(()=>{
// fun.apply(this,args)
// },delay)
// }
// }
// function throttle(fun,time){
// let start = 0
// return function(){
// let now = new Date()
// if(now - start>time){
// fun.apply(this)
// start = now
// }
// }
// }
// 冒泡排序算法
function bubbleSort(arr){
let temp = 0
for(let i=0;i<arr.length;i++){
for(let j=i;j<arr.length;j++){
if(arr[i]>arr[j]){
temp = arr[i]
arr[i]=arr[j]
arr[j] = temp
}
}
}
console.log(arr)
}
let arr = [1,7,9,0,2,5,15,10,8]
bubbleSort(arr)