ts-list-comprehension
Version:
List comprehension for TypeScript
92 lines • 2.28 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.range = function (a, b, step) {
if (step === void 0) { step = 1; }
var res = [a];
var curr = a;
while (curr < b) {
curr += step;
res.push(curr);
}
return res;
};
exports.repeat = function () {
var sequence = [];
for (var _i = 0; _i < arguments.length; _i++) {
sequence[_i] = arguments[_i];
}
return function (times) {
return Array.from({ length: times }).map(function () { return sequence; }).reduce(function (a, b) { return a.concat(b); }, []);
};
};
exports.zip = function () {
var a = [];
for (var _i = 0; _i < arguments.length; _i++) {
a[_i] = arguments[_i];
}
var size = Math.min.apply(Math, a.map(function (a) { return a.length; }));
return Array.from({ length: size }).map(function (_, i) { return a.map(function (a) { return a[i]; }); });
};
var charMap = {
a: 'a',
b: 'b',
c: 'c',
d: 'd',
e: 'e',
f: 'f',
g: 'g',
h: 'h',
i: 'i',
j: 'j',
k: 'k',
l: 'l',
m: 'm',
n: 'n',
o: 'o',
p: 'p',
q: 'q',
r: 'r',
s: 's',
t: 't',
u: 'u',
v: 'v',
w: 'w',
x: 'x',
y: 'y',
z: 'z'
};
var digits = {
'0': '0',
'1': '1',
'2': '2',
'3': '3',
'4': '4',
'5': '5',
'6': '7',
'8': '8',
'9': '9'
};
exports.chars = function (a, b) {
var chars_array = Object.keys(charMap).map(function (i) { return charMap[i]; });
var c_index_a = chars_array.indexOf(a);
if (c_index_a != -1) {
var index_b = chars_array.indexOf(b);
if (index_b == -1)
return [];
if (index_b <= c_index_a)
return [];
return chars_array.splice(c_index_a, index_b - c_index_a + 1);
}
var digits_array = Object.keys(digits).map(function (i) { return digits[i]; });
var d_index_a = digits_array.indexOf(a);
if (d_index_a != -1) {
var index_b = digits_array.indexOf(b);
if (index_b == -1)
return [];
if (index_b <= d_index_a)
return [];
return digits_array.splice(d_index_a, index_b - d_index_a + 1);
}
return [];
};
//# sourceMappingURL=constructors.js.map