This commit is contained in:
Rohit Tanwar
2017-12-26 22:33:58 +05:30
3 changed files with 36 additions and 13 deletions

View File

@ -795,12 +795,19 @@ const sample = arr => arr[Math.floor(Math.random() * arr.length)];
### shuffle ### shuffle
Randomizes the order of the values of an array. Randomizes the order of the values of an array, in place.
Use `Array.sort()` to reorder elements, using `Math.random()` in the comparator. Uses the Fisher-Yates algoritm to reorder the elements of the array, based on the [Lodash implimentation](https://github.com/lodash/lodash/blob/b2ea6b1cd251796dcb5f9700c4911a7b6223920b/shuffle.js)
```js ```js
const shuffle = arr => arr.sort(() => Math.random() - 0.5); const shuffle = ([...arr]) => {
let m = arr.length;
while (m) {
const i = Math.floor(Math.random() * m--);
[arr[m], arr[i]] = [arr[i], arr[m]];
}
return arr;
};
// shuffle([1,2,3]) -> [2,3,1] // shuffle([1,2,3]) -> [2,3,1]
``` ```
@ -2093,12 +2100,13 @@ const toSnakeCase = str =>{
str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) str && str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
.map(x => x.toLowerCase()) .map(x => x.toLowerCase())
.join('_'); .join('_');
}
// toSnakeCase("camelCase") -> 'camel_case' // toSnakeCase("camelCase") -> 'camel_case'
// toSnakeCase("some text") -> 'some_text' // toSnakeCase("some text") -> 'some_text'
// toSnakeCase("some-javascript-property") -> 'some_javascript_property' // toSnakeCase("some-javascript-property") -> 'some_javascript_property'
// toSnakeCase("some-mixed_string With spaces_underscores-and-hyphens") -> 'some_mixed_string_with_spaces_underscores_and_hyphens' // toSnakeCase("some-mixed_string With spaces_underscores-and-hyphens") -> 'some_mixed_string_with_spaces_underscores_and_hyphens'
// toKebabCase("AllThe-small Things") -> "all_the_smal_things" // toSnakeCase("AllThe-small Things") -> "all_the_small_things"
// toKebabCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') -> "i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html" // toSnakeCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') -> "i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html"
``` ```
[⬆ back to top](#table-of-contents) [⬆ back to top](#table-of-contents)

View File

@ -586,9 +586,16 @@ This method also works with strings.</p>
// sample([3, 7, 9, 11]) -&gt; 9 // sample([3, 7, 9, 11]) -&gt; 9
</code></pre> </code></pre>
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="shuffle">shuffle</h3></div><div class="section double-padded"> </div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="shuffle">shuffle</h3></div><div class="section double-padded">
<p>Randomizes the order of the values of an array.</p> <p>Randomizes the order of the values of an array, in place.</p>
<p>Use <code>Array.sort()</code> to reorder elements, using <code>Math.random()</code> in the comparator.</p> <p>Uses the Fisher-Yates algoritm to reorder the elements of the array, based on the <a href="https://github.com/lodash/lodash/blob/b2ea6b1cd251796dcb5f9700c4911a7b6223920b/shuffle.js">Lodash implimentation</a></p>
<pre><code class="language-js">const shuffle = arr =&gt; arr.sort(() =&gt; Math.random() - 0.5); <pre><code class="language-js">const shuffle = ([...arr]) =&gt; {
let m = arr.length;
while (m) {
const i = Math.floor(Math.random() * m--);
[arr[m], arr[i]] = [arr[i], arr[m]];
}
return arr;
};
// shuffle([1,2,3]) -&gt; [2,3,1] // shuffle([1,2,3]) -&gt; [2,3,1]
</code></pre> </code></pre>
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="similarity">similarity</h3></div><div class="section double-padded"> </div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="similarity">similarity</h3></div><div class="section double-padded">
@ -1326,12 +1333,13 @@ For more detailed explanation of this Regex, <a href="https://regex101.com/r/bMC
str &amp;&amp; str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g) str &amp;&amp; str.match(/[A-Z]{2,}(?=[A-Z][a-z]+[0-9]*|\b)|[A-Z]?[a-z]+[0-9]*|[A-Z]|[0-9]+/g)
.map(x =&gt; x.toLowerCase()) .map(x =&gt; x.toLowerCase())
.join('_'); .join('_');
}
// toSnakeCase(&quot;camelCase&quot;) -&gt; 'camel_case' // toSnakeCase(&quot;camelCase&quot;) -&gt; 'camel_case'
// toSnakeCase(&quot;some text&quot;) -&gt; 'some_text' // toSnakeCase(&quot;some text&quot;) -&gt; 'some_text'
// toSnakeCase(&quot;some-javascript-property&quot;) -&gt; 'some_javascript_property' // toSnakeCase(&quot;some-javascript-property&quot;) -&gt; 'some_javascript_property'
// toSnakeCase(&quot;some-mixed_string With spaces_underscores-and-hyphens&quot;) -&gt; 'some_mixed_string_with_spaces_underscores_and_hyphens' // toSnakeCase(&quot;some-mixed_string With spaces_underscores-and-hyphens&quot;) -&gt; 'some_mixed_string_with_spaces_underscores_and_hyphens'
// toKebabCase(&quot;AllThe-small Things&quot;) -&gt; &quot;all_the_smal_things&quot; // toSnakeCase(&quot;AllThe-small Things&quot;) -&gt; &quot;all_the_small_things&quot;
// toKebabCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') -&gt; &quot;i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html&quot; // toSnakeCase('IAmListeningToFMWhileLoadingDifferentURLOnMyBrowserAndAlsoEditingSomeXMLAndHTML') -&gt; &quot;i_am_listening_to_fm_while_loading_different_url_on_my_browser_and_also_editing_some_xml_and_html&quot;
</code></pre> </code></pre>
</div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="truncatestring">truncateString</h3></div><div class="section double-padded"> </div></div><br/><div class="card fluid"><div class="section double-padded"><h3 id="truncatestring">truncateString</h3></div><div class="section double-padded">
<p>Truncates a string up to a specified length.</p> <p>Truncates a string up to a specified length.</p>

View File

@ -1,10 +1,17 @@
### shuffle ### shuffle
Randomizes the order of the values of an array. Randomizes the order of the values of an array, in place.
Use `Array.sort()` to reorder elements, using `Math.random()` in the comparator. Uses the Fisher-Yates algoritm to reorder the elements of the array, based on the [Lodash implimentation](https://github.com/lodash/lodash/blob/b2ea6b1cd251796dcb5f9700c4911a7b6223920b/shuffle.js)
```js ```js
const shuffle = arr => arr.sort(() => Math.random() - 0.5); const shuffle = ([...arr]) => {
let m = arr.length;
while (m) {
const i = Math.floor(Math.random() * m--);
[arr[m], arr[i]] = [arr[i], arr[m]];
}
return arr;
};
// shuffle([1,2,3]) -> [2,3,1] // shuffle([1,2,3]) -> [2,3,1]
``` ```