Based on suggestions, added longestItem()
This commit is contained in:
17
snippets/longestItem.md
Normal file
17
snippets/longestItem.md
Normal file
@ -0,0 +1,17 @@
|
||||
### longestItem
|
||||
|
||||
Takes any iterable object or object with a `length` property and returns the longest one.
|
||||
|
||||
The function sorts all arguments by their `length` and returns the first (longest) one.
|
||||
|
||||
```js
|
||||
const longestItem = (...vals) => [...vals].sort((a, b) => b.length - a.length)[0];
|
||||
```
|
||||
|
||||
```js
|
||||
longestItem ('this', 'is', 'a', 'testcase'); // 'testcase'
|
||||
longestItem (...['a', 'ab', 'abc']); // 'abc'
|
||||
longestItem (...['a', 'ab', 'abc'], 'abcd'); // 'abcd'
|
||||
longestItem([1, 2, 3], [1, 2], [1, 2, 3, 4, 5]); // [1, 2, 3, 4, 5]
|
||||
longestItem([1, 2, 3], 'foobar'); // 'foobar'
|
||||
```
|
||||
@ -1,26 +0,0 @@
|
||||
### longestString
|
||||
|
||||
Takes an array of strings and returns the longest one.
|
||||
The method also accepts combinations of single strings and string arrays
|
||||
|
||||
Uses the [rest operator](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters)
|
||||
to handle arrays as well as an indefinite amount of single arguments.
|
||||
Strings are compared using `Array.reduce()`.
|
||||
|
||||
```js
|
||||
const longestString = (...strings) => strings.map(str => {
|
||||
if (Array.isArray(str)) {
|
||||
const first = str.shift();
|
||||
strings.concat(str);
|
||||
return first;
|
||||
} else {
|
||||
return str;
|
||||
}
|
||||
}).reduce((a, b) => a.length > b.length ? a : b);
|
||||
```
|
||||
|
||||
```js
|
||||
longestString('this', 'is', 'a', 'testcase'); // 'testcase'
|
||||
longestString(['a', 'ab', 'abc']); // 'abc'
|
||||
longestString(['a', 'ab', 'abc'], 'abcd'); // 'abcd'
|
||||
```
|
||||
Reference in New Issue
Block a user