Merge pull request #713 from EthanOrange/patch-4

Update initializeArrayWithRange snippet
This commit is contained in:
Angelos Chalaris
2018-08-13 14:22:33 +03:00
committed by GitHub
3 changed files with 10 additions and 4 deletions

View File

@ -2,13 +2,13 @@
Initializes an array containing the numbers in the specified range where `start` and `end` are inclusive with their common difference `step`. Initializes an array containing the numbers in the specified range where `start` and `end` are inclusive with their common difference `step`.
Use `Array.from(Math.ceil((end+1-start)/step))` to create an array of the desired length(the amounts of elements is equal to `(end-start)/step` or `(end+1-start)/step` for inclusive end), `Array.map()` to fill with the desired values in a range. Use `Array.from()` to create an array of the desired length, `(end - start + 1)/step`, and a map function to fill it with the desired values in the given range.
You can omit `start` to use a default value of `0`. You can omit `start` to use a default value of `0`.
You can omit `step` to use a default value of `1`. You can omit `step` to use a default value of `1`.
```js ```js
const initializeArrayWithRange = (end, start = 0, step = 1) => const initializeArrayWithRange = (end, start = 0, step = 1) =>
Array.from({ length: Math.ceil((end + 1 - start) / step) }).map((v, i) => i * step + start); Array.from({length: Math.ceil((end - start + 1) / step)}, (v, i) => i * step + start);
``` ```
```js ```js

View File

@ -1,3 +1,3 @@
const initializeArrayWithRange = (end, start = 0, step = 1) => const initializeArrayWithRange = (end, start = 0, step = 1) =>
Array.from({ length: Math.ceil((end + 1 - start) / step) }).map((v, i) => i * step + start); Array.from({length: Math.ceil((end - start + 1) / step)}, (v, i) => i * step + start);
module.exports = initializeArrayWithRange; module.exports = initializeArrayWithRange;

View File

@ -4,6 +4,12 @@ const initializeArrayWithRange = require('./initializeArrayWithRange.js');
test('initializeArrayWithRange is a Function', () => { test('initializeArrayWithRange is a Function', () => {
expect(initializeArrayWithRange).toBeInstanceOf(Function); expect(initializeArrayWithRange).toBeInstanceOf(Function);
}); });
test('Initializes an array containing the numbers in the specified range', () => { test('Initializes an array containing the numbers in the specified range (witout start value)', () => {
expect(initializeArrayWithRange(5)).toEqual([0, 1, 2, 3, 4, 5]); expect(initializeArrayWithRange(5)).toEqual([0, 1, 2, 3, 4, 5]);
}); });
test('Initializes an array containing the numbers in the specified range', () => {
expect(initializeArrayWithRange(7,3)).toEqual([3, 4, 5, 6, 7]);
});
test('Initializes an array containing the numbers in the specified range (with step)', () => {
expect(initializeArrayWithRange(9,0,2)).toEqual([0, 2, 4, 6, 8]);
});