1. arr swap
|
|
或者用call
|
|
2. bubbleSort
|
|
3. removeDuplicate
用hash
|
|
4. 日期格式化
|
|
5. push dynamic arr to arr
楼主最近在刷leetcode,递归中会有不断push数组到result数组中的问题。但是碍于js的引用传值…结果经常就是一溜的同样的数组。微笑脸.jpg
需要复制。。
|
|
6. find target in a sorted array
如果有则返回第一次出现的位置,如果不存在,则返回的是它如果要插入的话应该在的位置。leetcode 二分查找相关题目应用。123456789101112function searchIndex(target1){ var i = 0, j = nums.length; //attention! while (i < j) { var mid = Math.floor((i + j) / 2); if (nums[mid] < target1) i = mid + 1; //i是最左边的===target的元素 else j = mid; } return i;}
需要注意的是:
- j的初始值应该是nums.length而不是nums.length-1
- 其次。循环终止条件不能是 while(i<=j) 因为终止条件中i = mid。而循环中有j = mid。如果while(i<=j)的话,就会导致死循环。
7. 数组应用
|
|
划重点:
其实跟我们平时用构造函数差不多。觉得比较好的是newObj里面的实现。-
补充下:
|
|
8. 闭包实现单例
利用的就是闭包可以一直访问外部变量,而外部变量也因为闭包的引用持久的存在于内存中。
|
|
还有一种更彻底的高阶函数的方式:
高阶函数是至少满足以下条件的函数:
参数为函数
返回值为函数
|
|