Added support for arrays and single strings
This commit is contained in:
@ -1,16 +1,26 @@
|
||||
### 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].reduce((a, b) => a.length > b.length ? a : b);
|
||||
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('this', 'is', 'a', 'testcase'); // 'testcase'
|
||||
longestString(['a', 'ab', 'abc']); // 'abc'
|
||||
longestString(['a', 'ab', 'abc'], 'abcd'); // 'abcd'
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user