diff --git a/snippets/longestItem.md b/snippets/longestItem.md index ca61d93f4..9e277e1d8 100644 --- a/snippets/longestItem.md +++ b/snippets/longestItem.md @@ -2,10 +2,10 @@ Takes any number of iterable objects or objects with a `length` property and returns the longest one. -Use `Array.sort()` to sort all arguments by `length`, return the first (longest) one. +Use `Array.reduce()` to collect the longest element. Returns [] for empty array. ```js -const longestItem = (...vals) => [...vals].sort((a, b) => b.length - a.length)[0]; +const longestItem = (...vals) => [...vals].reduce((a, x) => (a.length > x.length ? a : x), []); ``` ```js diff --git a/test/longestItem/longestItem.js b/test/longestItem/longestItem.js index d5f7c2528..4d63c3413 100644 --- a/test/longestItem/longestItem.js +++ b/test/longestItem/longestItem.js @@ -1,2 +1,2 @@ -const longestItem = (...vals) => [...vals].sort((a, b) => b.length - a.length)[0]; +const longestItem = (...vals) => [...vals].reduce((a, x) => (a.length > x.length ? a : x), []); module.exports = longestItem;