zoukankan      html  css  js  c++  java
  • 【Better Code】repeat

    《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
    }
  • 相关阅读:
    Loadrunner系列学习--Loadrunner架构(1)
    Loadrunner学习---脚本编写(1)
    loadrunner学习系列---脚本编写(2)
    LoadRunner学习---脚本编写(4)(比较重要)
    LoadRunner内部结构(1)
    pat 1142
    pat 1025
    pat 1140
    c/c++ 常用函数/方法
    pat 1136
  • 原文地址:https://www.cnblogs.com/jzm17173/p/5884516.html
Copyright © 2011-2022 走看看