- 博客(24)
- 收藏
- 关注
原创 尾递归优化,以阶乘函数为例
function factorial(n){ if (n <= 1){ return 1 }else{ return n * factorial(n-1) }}上面是阶乘函数的常规递归实现尾递归就是每一次的递归函数的最后一步是调用另一个函数,而不是一个操作后再调用另一个函数,如上面的return n * factorial(n-1)就多了一个n*的操作...
2018-10-30 14:53:26
1322
原创 js保留2位小数(且四舍五入)
首先我们来看2个方法:1 、tofixed方法toFixed() 方法可把 Number 四舍五入为指定小数位数的数字。但是其四舍五入的规则与数学中的规则不同,使用的是银行家舍入规则。银行家舍入:所谓银行家舍入法,其实质是一种四舍六入五取偶(又称四舍六入五留双)法。具体规则如下:简单来说就是:四舍六入五考虑,五后非零就进一,五后为零看奇偶,五前为偶应舍去,五前为奇要进一。如...
2018-10-11 19:45:50
34816
1
原创 if-else与switch,选哪个?
条件数量比较少时:使用if-else,这样写起来代码更加容易阅读。if-else的优化:1、把最容易匹配到的条件放在前面2、将if规则组织成一系列嵌套的IFR语句,使用单个的if-else通常会导致随着每个附加条件的评估,整个执行时间变慢。 条件数量比较多时:使用switch,这样子性能比if-else好。 条件数量非常多时:使用循环,在JavaScript...
2018-09-27 10:00:04
1620
转载 parseInt里的基数参数
请看下面几行代码的运行结果: console.log(parseInt(1/0,19)) //18 console.log(parseInt(false,16)) //250 console.log(parseInt(parseInt,16)) //15 console.log(parseInt('0x10')) //16 console.log(pa...
2018-09-11 10:48:47
1855
转载 什么是函数式编程?
当我们说起函数式编程来说,我们会看到如下函数式编程的长相:函数式编程的三大特性: immutable data 不可变数据:像Clojure一样,默认上变量是不可变的,如果你要改变变量,你需要把变量copy出去修改。这样一来,可以让你的程序少很多Bug。因为,程序中的状态不好维护,在并发的时候更不好维护。(你可以试想一下如果你的程序有个复杂的状态,当以后别人改你代码的时候,是很容易出bug的...
2018-08-22 11:21:35
18850
1
原创 什么是闭包(Closure)?
闭包(Closure)可以保留局部变量不被释放的代码块,被称为一个闭包闭包的概念比较抽象,相信大家都或多或少知道、用到这个特性那么闭包到底能给我们带来什么好处?先来看一下如何创建一个闭包: // 创建一个闭包function makeCounter() { let k = 0; return function() { return ++...
2018-08-22 11:02:37
1148
原创 小程序js实现【滚动文字广播、动态滚动公告栏】动画效果
效果:实现思路:内容是同一个容器,通过动画的效果以及改变容器的内容达到以上效果wxml:<view style="height: 30px;overflow: hidden;"> <view animation="{{animationData}}">{{content}}</view></view>js:var thatvar anima...
2018-05-15 16:40:49
9494
1
原创 小程序实现【倒计时计时器,最后十秒只显示一位数并且加入放大动画效果】
效果:js:var that// 用来实现最后十秒强调的动画var animation = wx.createAnimation({ duration: 300, timingFunction: 'ease',})/** * [倒计时函数,最后十秒只显示一个数字,且有放大动画效果] * @param {Number} minutes [分钟] * @pa...
2018-05-15 14:31:27
4196
3
原创 小程序实现【滑动齿轮数字选择器】
效果:关键:用小程序picker-view实现,linear-gradient实现背景渐变色wxml:<view> <view>{{arr1Value}}{{arr2Value}}{{arr3Value}}{{arr4Value}}{{arr5Value}}{{arr6Value}}{{arr7Value}}{{arr8Value}}{{arr9Value}}</...
2018-05-14 17:41:52
3459
2
原创 小程序js实现【数字变化动画效果】
需求:由一个数字变化到另一个数字,中间有类似摇奖、生成随机数那样的动画视觉效果效果:思路:把两个数的差值分成几次变化wxml:new Number: {{newNumber}}<view>{{number}}</view><button bindtap="start">start</button>js:var thatPage({ dat...
2018-05-14 14:36:15
10143
原创 小程序实现【自动滚动信息栏】
需求:列表不断获取最新信息,加入列表并自动滚动到底部效果如下:关键:利用scroll-view控件,控制scroll-top达到自动滚动的效果wxml:<view class="section"> <view class="section__title">vertical scroll</view> <scroll-view scroll-y st...
2018-05-14 11:10:06
3639
原创 js控制数字保留2位小数(不四舍五入)
原理: 保留3位再剪掉一位var clip = a => Number(parseFloat(a).toFixed(3).slice(0,-1))
2018-04-02 16:28:14
11638
原创 数字时间转化为中文时间
// 映射个位数用 var onesPlace = ['零','一','二','三','四','五','六','七','八','九','十'] // 两位数的个位数映射有点不同 var onesPlaceForTensDigit = ['','一','二','三','四','五','六','七','八','九','十'] // 映射十位数 var t...
2018-03-30 14:58:02
3342
原创 按顺序执行多个异步函数的方法
function a(cb){ console.log('this is a1 ') cb() console.log('this is a2')}function b(cb){ console.log('this is b1') cb('b') console.log('this is b2')}function c(cb){ console.log('this is c1
2018-01-19 15:27:30
5238
1
原创 小程序web-view的使用与调试
基本语法:其中,url必须在管理后台加进业务域名,并且是https开头的。使用了web-view,页面将不能放置其他元素,因为web-view会铺满整个页面电脑端调试,需要在开发者工具的项目设置里把基础库版本改为最新的(1.6.4)
2017-11-07 10:16:32
9954
2
原创 flex布局实现左右都不定宽的自适应布局
第一个应用:固定宽度+自适应布局,需求如下:左边图片定宽,图示选中区域为自适应布局实现:这个比较简单,父元素设置display: flex; 右边子元素设置:flex-grow: 1,这样子右边会自动撑开空白的地方。第二个应用:完全显示的文本+超出省略的文本(两边都不定宽):需求如下:邀请时间完全显示,昵称超出后省略实现:父容器设
2017-11-03 17:18:19
8658
翻译 CSS中定义变量,并使用变量设置属性值
:root{ --base: yellow; --spacing: 10px; --blur: 10px; }上面代码定义了3个变量,:root使得所有人可访问 img{ filter: blur(var(--blur)); padding: var(--spacing); backgroun
2017-11-01 14:59:58
7486
原创 微信小程序实现滑动tab标签页
外层的view添加2个事件,一个是触摸开始,一个触摸结束,在事件里可以根据target的坐标判断是否发生左右滑动,以此改变页面及标签的转变。发生改变时,标签动态改变active样式,内容则用translate实现左右平移。 view class="page" catch:touchstart="pageTouchStartHandler" catch:touchend="pageTouchEndH
2017-10-28 10:15:36
4382
原创 微信小程序实现滑动侧边栏
This is Body This is sideBar .sideBar { background: red; position: fixed; width: 300px; height: 100%; top: 0; right: 0; transform: translate(300px); transition: all 0.5s ea
2017-10-26 11:49:10
4623
2
原创 阶乘计算升级版
1000的阶乘结果是一个接近3000位的数字, 用编程语言的变量类型已经无法存储, 这道题用了一个3000位长的数组来存储结果.计算方法:用一个数组存储结果,一个下标存储结果的一位,低的下标存储结果的低位数,所以数组的0下标对应存储结果的个位数,以此类推.在一开始,数组初始化为1,然后用一个循环,从2开始,乘以这个数组,一次循环结束后更新数组的值.比如循环做到5,此时数组的值为24
2016-07-13 19:22:23
1295
转载 利用php执行sql文件
昨晚突然想知道怎么实现用php读入sql文件以此来连接数据库执行创建数据, 试了百度上几个做法,最后成功的方法是用php的file_get_content()函数把sql文件读进来, 然后用explode分割, 加上分好后用query 逐条语句执行,搞定
2016-05-26 19:35:34
2568
原创 02-线性结构1 一元多项式的乘法与加法运算[网易云课堂-数据结构]
这道题从自己写,参考其他的人的代码,调了几天才拿到满分,居然是一对大括号的问题,最大的收获是编程的严谨性.#include #include typedef struct PolyNode *Polynomial;struct PolyNode{int coef;int expon;Polynomial link;};int compare(in
2016-05-02 17:31:04
653
原创 [Data Structure] Maximum Subsequence Sum
Given a sequence of KK integers { N_1N1, N_2N2, ..., N_KNK }. A continuous subsequence is defined to be { N_iNi, N_{i+1}Ni+1, ..., N_jNj } where 1 \le i \le j \le K1≤i≤j≤K.
2016-04-17 14:19:13
527
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人