SOURCE

let data = {
  a: 1
};

Object.keys(data).forEach(key => {
  Object.defineProperty(data, key, {
    enumerable: true,
    configurable: true,
    get: () => {
      console.log(`取${key}的值`)
    },
    set: val => {
      console.log(`检测到重新赋值${val}`)
    }
  })
})

// data.a = 22
// console.log(data.a)

// a = 10; //第一个元素
// b = 5; //下一个元素
// if (a > b) {
// 	a = a + b; // a(15) = 10 +5;
// 	b = a - b; // b(10) = 15 - 5;
// 	a = a - b; // a(5) = 15 - 10;
// }

let arr = [3,2,6,5,1,2]
function bubbleSort(arr) {
    for(let i=arr.length; i>0;i--){
        for(let j=0;j<i-1;j++) {
            if(arr[j] > arr[j+1]) {
                [arr[j], arr[j+1]]=[arr[j+1], arr[j]];
            }
        }
    }
  console.log(arr)
}

// bubbleSort(arr)
// 快排
function quickSort(arr) {
    if(arr.length<2) return arr;
    let pivot=arr.pop();
    let left = arr.filter(val=> val < pivot);
    let right = arr.filter(val => val > pivot)
    return quickSort(left).concat(pivot, quickSort(right));
}

console.log(quickSort(arr))

// 把多维数组变成一维数组的方法
 arr= [[1,2],3]
// 法二:toString
// function flatten(arr) {
//   return arr.toString().split(',').map(function(item){
//     return +item
//   })
// }

// 法三:reduce

// function flatten(arr) {
//   return arr.reduce(function(prev, next){
//     return prev.concat(Array.isArray(next) ? flatten(next) : next)
//   }, [])
// }

// 法四:rest运算符

// function flatten(arr) {
//   while (arr.some(item => Array.isArray(item))) {
//     arr = [].concat(...arr);
//   }
//   return arr;
// }
console 命令行工具 X clear

                    
>
console