Skip to content

Commit fe016b0

Browse files
committed
Merge branch 'master' of https://github.com/wuyawei/demo
2 parents 7a95274 + 32763aa commit fe016b0

3 files changed

Lines changed: 176 additions & 3 deletions

File tree

JavaScript/节流和防抖/debounce.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ function debounce(fn, delay, isImmediate) {
1313

1414
if(timer) clearTimeout(timer);
1515

16-
// 非立即执行
16+
// delay执行
1717
timer = setTimeout(function() {
1818
timer = null;
1919
if(!isImmediate) fn.apply(that, args);

JavaScript/面试总结/1.js

Lines changed: 113 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -53,4 +53,116 @@
5353
// await sleep(2000);
5454
// console.log('ok');
5555
// }
56-
// test();
56+
// test();
57+
58+
// 冒泡
59+
// function bubbleSort(arr) {
60+
// console.time('冒泡排序耗时');
61+
// var len = arr.length;
62+
// for (var i = 0; i < len-1; i++) {
63+
// for (var j = 0; j < len - 1 - i; j++) {
64+
// if (arr[j] > arr[j+1]) { //相邻元素两两对比
65+
// var temp = arr[j+1]; //元素交换
66+
// arr[j+1] = arr[j];
67+
// arr[j] = temp;
68+
// }
69+
// }
70+
// console.log(arr);
71+
// }
72+
// console.timeEnd('冒泡排序耗时');
73+
// return arr;
74+
// }
75+
76+
// function bubbleSort2(arr) {
77+
// console.time('改进后冒泡排序耗时');
78+
// var i = arr.length-1; //初始时,最后位置保持不变
79+
// while ( i> 0) {
80+
// var pos= 0; //每趟开始时,无记录交换
81+
// for (var j= 0; j< i; j++) {
82+
// if (arr[j]> arr[j+1]) {
83+
// pos= j; //记录交换的位置
84+
// var tmp = arr[j]; arr[j]=arr[j+1];arr[j+1]=tmp;
85+
// }
86+
// }
87+
// console.log(arr);
88+
// // i--;
89+
// i= pos; //为下一趟排序作准备
90+
// }
91+
// console.timeEnd('改进后冒泡排序耗时');
92+
// return arr;
93+
// }
94+
95+
// 选择
96+
// function selectSort(arr) {
97+
// let i = arr.length -1;
98+
// while (i > 0) {
99+
// let index = i;
100+
// for(let j = 0; j < i; j ++) {
101+
// if (arr[j] > arr[index]) {
102+
// index = j;
103+
// }
104+
// }
105+
// var temp = arr[index];
106+
// arr[index] = arr[i];
107+
// arr[i] = temp;
108+
// i--;
109+
// }
110+
// return arr;
111+
// }
112+
113+
// 插入
114+
// function insertSort(arr) {
115+
// let len = arr.length;
116+
// for(let i = 1; i < len; i ++) {
117+
// let k = arr[i];
118+
// let index = i -1;
119+
// while (index >= 0 && arr[index] > k) {
120+
// arr[index + 1] = arr[index];
121+
// index --;
122+
// }
123+
// arr[index + 1] = k;
124+
// }
125+
// return arr;
126+
// }
127+
128+
// 二分法插入
129+
// function binaryInsertSort(arr) {
130+
// var len =arr.length;
131+
// for (var i=1;i<len; i++) {
132+
// var key=arr[i],left=0,right=i-1;
133+
// while(left<=right){ //在已排序的元素中二分查找第一个比它大的值
134+
// var mid= parseInt((left+right)/2); //二分查找的中间值
135+
// if(key<arr[mid]){ //当前值比中间值小 则在左边的子数组中继续寻找
136+
// right = mid-1;
137+
// }else{
138+
// left=mid+1;//当前值比中间值大 在右边的子数组继续寻找
139+
// }
140+
// }
141+
// for(var j=i-1;j>=left;j--) { // left 之后的成员都向后移动一位
142+
// arr[j+1]=arr[j];
143+
// }
144+
// arr[left]=key;
145+
// }
146+
// return arr;
147+
// }
148+
149+
// 快排
150+
// function quickSort(arr) {
151+
// if (arr.length < 2) {
152+
// return arr;
153+
// }
154+
// let left = [];
155+
// let right = [];
156+
// let index = Math.floor(arr.length/2);
157+
// let point = arr.splice(index, 1)[0];
158+
// for (let i = 0; i < arr.length; i++) {
159+
// if (arr[i] < point) {
160+
// left.push(arr[i]);
161+
// } else {
162+
// right.push(arr[i]);
163+
// }
164+
// }
165+
// return quickSort(left).concat([point], quickSort(right));
166+
// }
167+
// let arr=[5,1,2,3,4];
168+
// console.log(quickSort(arr));

tiku/1.js

Lines changed: 62 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,4 +81,65 @@
8181
// lisisi.say();
8282
// console.log(lisi, lisisi);
8383

84-
// 实现一个柯里化
84+
// 实现一个柯里化
85+
// function add(...arg) {
86+
// return arg.reduce((pre, cur) => pre + cur);
87+
// }
88+
// function curry() {
89+
// let [fn, ...arg] = arguments;
90+
// return function(..._arg) {
91+
// return fn.call(this, ...[...arg, ..._arg]);
92+
// }
93+
// }
94+
// let addCurry = curry(add, 1,2,3);
95+
// addCurry(4,5) // 15
96+
97+
// 累加 add
98+
// function add(...arg) {
99+
// let args = arg;
100+
// let ret = function(..._arg) {
101+
// args = [...args, ..._arg];
102+
// return ret;
103+
// };
104+
// ret.toString = function() {
105+
// return args.reduce((pre, cur) => pre + cur);
106+
// };
107+
// return ret;
108+
// }
109+
// add(1,2)(3)(5) // 10
110+
111+
// 函数防抖
112+
// function debounce(fn, delay, imadiate) { // imadiate 是否立即执行
113+
// let timer = null;
114+
// return function(...arg) {
115+
// let callbackNow = !timer && imadiate;
116+
// if (timer) clearTimeout(timer);
117+
// timer = setTimeout(() => {
118+
// timer = null;
119+
// if (!imadiate) fn.call(this, ...arg);
120+
// }, delay);
121+
//
122+
// if (callbackNow) fn.call(this, ...arg);
123+
// }
124+
// }
125+
126+
// 函数节流
127+
// function throttle(fn, delay) {
128+
// let pre = +new Date();
129+
// let timer = null;
130+
// return function(... arg) {
131+
// let now = +new Date();
132+
// let diff = now - pre;
133+
// if (timer) clearTimeout(timer);
134+
// if (diff > delay) {
135+
// fn.call(this, ...arg);
136+
// pre = now;
137+
// } else {
138+
// timer = setTimeout(() => {
139+
// fn.call(this, ...arg);
140+
// pre = +new Date();
141+
// timer = null;
142+
// }, delay)
143+
// }
144+
// }
145+
// }

0 commit comments

Comments
 (0)