《JavaScript 框架设计》

版本1:

function repeat(target, n) {
return (new Array(n + 1)).join(target)
}

版本2:

function repeat(target, n) {
return Array.prototype.join.call({length: n + 1}, target)
}

版本3:(缓存)

var repeat = (function() {
var join = Array.prototype.join,
obj = {}
return function(target, n) {
obj.length = n + 1
return join.call(obj, target)
}
})();

版本4:(算法)

function repeat(target, n) {
var s = target,
total = []
while (n > 0) {
if (n % 2 == 1) total[total.length] = s
if (n == 1) break
s += s
n = n >> 1
} return total.join('')
}

版本5:

function repeat(target, n) {
var s = target,
c = s.length * n
do {
s += s
} while (n = n >> 1)
s = s.substring(0, c)
return s
}

版本6:

function repeat(target, n) {
var s = target
total = ''
while (n > 0) {
if (n % 2 == 1) total += s
if (n == 1) break
s += s
n = n >> 1
}
return total
}

版本7:(递归)

function repeat(target, n) {
if (n == 1) {
return target
}
var s = repeat(target, Math.floor(n / 2))
s += s
if (n % 2) {
s += target
}
return s
}

【Better Code】repeat的更多相关文章

  1. 【Leet Code】Palindrome Number

    Palindrome Number Total Accepted: 19369 Total Submissions: 66673My Submissions Determine whether an ...

  2. 【转】【VS Code】配置文件Launch及快捷键

     Ctrl+shift+p,然后输入launch,点击第一个选项即可配置. 之后选择More即可 具体配置可修改为: { "version": "0.2.0", ...

  3. 【Gray Code】cpp

    题目: The gray code is a binary numeral system where two successive values differ in only one bit. Giv ...

  4. 【繁星Code】如何在EF将实体注释写入数据库中

    最近在项目中需要把各个字段的释义写到数据库中,该项目已经上线很长时间了,数据库中的字段没有上千也有上百个,要是一个项目一个项目打开然后再去找对应字段查看什么意思,估计要到明年过年了.由于项目中使用En ...

  5. -_-#【Better Code】

    i++ 与 ++i 的性能区别 if (true) { console.log('hi') } if (!false) { console.log('hi~') } true && c ...

  6. -_-#【Better Code】throttle / debounce

    浅谈javascript的函数节流 javascript函数的throttle和debounce throttle 疯狂触发事件,固定步调执行 debounce 疯狂触发事件,不会执行 var res ...

  7. 【Better Code】面向切面编程

    用AOP改善JavaScript代码http://www.w3cfuns.com/thread-5597323-1-1.html

  8. -_-#【Better Code】字符串匹配

    提高 web 应用性能之 JavaScript 性能调优

  9. 【Leet Code】String to Integer (atoi) ——常考类型题

    String to Integer (atoi) Total Accepted: 15482 Total Submissions: 106043My Submissions Implement ato ...

随机推荐

  1. oracle Redhat64 安装错误3

    问题描述 /usr/bin/ld: cannot find -lxxx 其中xxx即表示函式库文件名称,其命名规则是:lib+库名(即xxx)+.so. 可能原因:  1 安装了,但相对应的lib版本 ...

  2. sql2008 附加数据库出错解决方法

    当遇到 无法为此请求检索数据,(Microsoft.SqlServer.SmoEnum)其他信息执行Transact-Sql语句或批处理时发生了异常, Microsoft.SqlServer.Conn ...

  3. C#伪静态实现的方法

    在asp.net开发网站的时候,我们经常会用到伪静态,好处是可以隐藏真实的路径,提高网站的安全性,在官网等展示网站希望对搜索引擎友好,提高搜索排名:或者在涉及到模板开发都会用到伪静态.下面讲解下平时用 ...

  4. 设置正确的post数据格式

    之前一直使用苏飞的HttpHelper类来访问网络,用起来一直感觉很爽.使用其工具直接生成访问代码很是方便.直到昨天下午做到需要使用wpf来post两个字段数据到服务器,服务器使用ASP.NET MV ...

  5. Java 多线程中run() 与 start() 的不同

    区别:调用start方法实现多线程,而调用run方法没有实现多线程 Start: 用start方法来启动线程,真正实现了多线程运行,这时无需等待run方法体代码执行完毕而直接继续执行下面的代码.通过调 ...

  6. 如何删除 Ubuntu 上不再使用的旧内核

    提问:过去我已经在我的Ubuntu上升级了几次内核.现在我想要删除这些旧的内核镜像来节省我的磁盘空间.如何用最简单的方法删除Ubuntu上先前版本的内核? 在Ubuntu上,有几个方法来升级内核.在U ...

  7. 常用的JavaScript验证正则表达式1

    匹配Email地址的正则表达式:w+([-+.]w+)*@w+([-.]w+)*.w+([-.]w+)*评注:表单验证时很实用 匹配网址URL的正则表达式:[a-zA-z]+://[^s]* 评注:网 ...

  8. java.util.ResourceBundle使用详解(转)

    java.util.ResourceBundle使用详解   一.认识国际化资源文件   这个类提供软件国际化的捷径.通过此类,可以使您所编写的程序可以:          轻松地本地化或翻译成不同的 ...

  9. jstl c:choose>、<c:when>和<c:otherwise>标签

    <c:choose>.<c:when>和<c:otherwise>在一起连用,可以实现Java语言中的if-else语句的功能.例如以下代码根据username请求 ...

  10. Unity优化之减少Drawcall

    简单来说,Drawcall就是屏幕渲染一次所需要的开销,为了较少消耗,提高性能,一般有以下几种方法. 一: 批处理 1.动态批处理 如果动态物体共用着相同的材质,那么Unity会自动对这些物体进行批处 ...