SOURCE

// 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)


console 命令行工具 X clear

                    
>
console