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