diff --git a/snippets/longestString.md b/snippets/longestString.md index 03539dbe2..a7feb3c3d 100644 --- a/snippets/longestString.md +++ b/snippets/longestString.md @@ -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' ```