27 lines
994 B
Markdown
27 lines
994 B
Markdown
### 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'
|
|
```
|