diff --git a/README.md b/README.md index 53d1142d2..c2fcc5b05 100644 --- a/README.md +++ b/README.md @@ -868,14 +868,15 @@ initialize2DArray(2, 2, 0); // [[0,0], [0,0]] ### initializeArrayWithRange -Initializes an array containing the numbers in the specified range where `start` and `end` are inclusive. +Initializes an array containing the numbers in the specified range where `start` and `end` are inclusive with there common difference `step`. -Use `Array((end + 1) - start)` to create an array of the desired length, `Array.map()` to fill with the desired values in a range. +Use `Array(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. You can omit `start` to use a default value of `0`. - +You can omit `step` to use a default value of `1`. + ```js -const initializeArrayWithRange = (end, start = 0) => - Array.from({ length: end + 1 - start }).map((v, i) => i + start); +const initializeArrayWithRange = (end, start = 0, step = 1) => + Array.from({ length: Math.ceil((end + 1 - start) / step) }).map((v, i) => i * step + start); ```
@@ -884,6 +885,7 @@ const initializeArrayWithRange = (end, start = 0) => ```js initializeArrayWithRange(5); // [0,1,2,3,4,5] initializeArrayWithRange(7, 3); // [3,4,5,6,7] +initializeArrayWithRange(9, 0, 2); //[0,2,4,6,8] ```
diff --git a/docs/index.html b/docs/index.html index 82eab6aae..6628f7b3b 100644 --- a/docs/index.html +++ b/docs/index.html @@ -152,10 +152,11 @@ groupBy(['one', 'two', 'three'], 'length'); // {3: ['one', 'two'], 5: ['three']} .fill() .map(() => Array(w).fill(val));
initialize2DArray(2, 2, 0); // [[0,0], [0,0]]
-

initializeArrayWithRange

Initializes an array containing the numbers in the specified range where start and end are inclusive.

Use Array((end + 1) - start) to create an array of the desired length, Array.map() to fill with the desired values in a range. You can omit start to use a default value of 0.

const initializeArrayWithRange = (end, start = 0) =>
-  Array.from({ length: end + 1 - start }).map((v, i) => i + start);
+

initializeArrayWithRange

Initializes an array containing the numbers in the specified range where start and end are inclusive with there common difference step.

Use Array(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. You can omit start to use a default value of 0. You can omit step to use a default value of 1.

const initializeArrayWithRange = (end, start = 0, step = 1) =>
+  Array.from({ length: Math.ceil((end + 1 - start) / step) }).map((v, i) => i * step + start);
 
initializeArrayWithRange(5); // [0,1,2,3,4,5]
 initializeArrayWithRange(7, 3); // [3,4,5,6,7]
+initializeArrayWithRange(9, 0, 2); //[0,2,4,6,8]
 

initializeArrayWithValues

Initializes and fills an array with the specified values.

Use Array(n) to create an array of the desired length, fill(v) to fill it with the desired values. You can omit value to use a default value of 0.

const initializeArrayWithValues = (n, value = 0) => Array(n).fill(value);
 
initializeArrayWithValues(5, 2); // [2,2,2,2,2]
 

intersection

Returns a list of elements that exist in both arrays.

Create a Set from b, then use Array.filter() on a to only keep values contained in b.

const intersection = (a, b) => {
diff --git a/snippets/initializeArrayWithRange.md b/snippets/initializeArrayWithRange.md
index 7c803aed0..2b59153b1 100644
--- a/snippets/initializeArrayWithRange.md
+++ b/snippets/initializeArrayWithRange.md
@@ -7,12 +7,12 @@ You can omit `start` to use a default value of `0`.
 You can omit `step` to use a default value of `1`.
  
 ```js
-const initializeArrayWithRange = (end, start = 0,step = 1) =>
-  Array.from({length:Math.ceil((end + 1 - start)/step)}).map((v, i) => (i * step) + start);
+const initializeArrayWithRange = (end, start = 0, step = 1) =>
+  Array.from({ length: Math.ceil((end + 1 - start) / step) }).map((v, i) => i * step + start);
 ```
 
 ```js
 initializeArrayWithRange(5); // [0,1,2,3,4,5]
 initializeArrayWithRange(7, 3); // [3,4,5,6,7]
-initializeArrayWithRange(9,0,2); //[0,2,4,6,8]
+initializeArrayWithRange(9, 0, 2); //[0,2,4,6,8]
 ```