Merge branch 'master' of https://github.com/kriadmin/30-seconds-of-code
This commit is contained in:
18
README.md
18
README.md
@ -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)
|
||||||
|
|||||||
@ -586,9 +586,16 @@ This method also works with strings.</p>
|
|||||||
// sample([3, 7, 9, 11]) -> 9
|
// sample([3, 7, 9, 11]) -> 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 => arr.sort(() => Math.random() - 0.5);
|
<pre><code class="language-js">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]
|
||||||
</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 && 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"
|
||||||
</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>
|
||||||
|
|||||||
@ -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]
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user