implemented 6 more passing tests for range. Now works like python's range

This commit is contained in:
Kirill Ishanov
2009-12-01 02:10:56 +03:00
parent d8cf99ba89
commit 451d9c5d62
5 changed files with 42 additions and 16 deletions

View File

@@ -33,19 +33,33 @@
// Current version.
_.VERSION = '0.4.5';
/*------------------------ Generator Functions: ----------------------------*/
_.range = function(upper, lower, step) {
if (!lower) var lower = 0;
if (!step) var step = 1;
/*------------------------ Generator Functions: ---------------------------*/
var result = new Array(((upper - lower) / step) + 1));
for (var i = lower; i <= upper; i += step) {
result[i] = i;
// Generates an Array, containing an arithmetic progressions
// Analog of python's built-in function 'range'
_.range = function(start, stop, step) {
if (!stop) {
var stop = start;
start = 0;
}
return result;
}
if (!step) var step = 1;
var length = Math.ceil((stop - start) / step);
if (length < 0) {
return [];
}
var results = new Array(length);
var resIdx = 0;
for (var i = start; (start <= stop ? stop - i > 0 : i - stop > 0); i += step) {
results[resIdx++] = i;
}
return results;
};
/*------------------------ Collection Functions: ---------------------------*/