You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/*! * repeat-string <https://github.com/jonschlinkert/repeat-string>
* * Copyright (c) 2014-2015, Jon Schlinkert. * Licensed under the MIT License. */
'use strict';
/** * Results cache */
var res = ''; var cache;
/** * Expose `repeat` */
module.exports = repeat;
/** * Repeat the given `string` the specified `number` * of times. * * **Example:** * * ```js
* var repeat = require('repeat-string'); * repeat('A', 5); * //=> AAAAA
* ```
* * @param {String} `string` The string to repeat * @param {Number} `number` The number of times to repeat the string * @return {String} Repeated string * @api public */
function repeat(str, num) { if (typeof str !== 'string') { throw new TypeError('expected a string'); }
// cover common, quick use cases
if (num === 1) return str; if (num === 2) return str + str;
var max = str.length * num; if (cache !== str || typeof cache === 'undefined') { cache = str; res = ''; } else if (res.length >= max) { return res.substr(0, max); }
while (max > res.length && num > 1) { if (num & 1) { res += str; }
num >>= 1; str += str; }
res += str; res = res.substr(0, max); return res; }
|