--- id: 5e6dd14192286d95fc43046e title: 最長文字列チャレンジ challengeType: 5 forumTopicId: 385275 dashedName: longest-string-challenge --- # --description-- このチャレンジでは、与えられた文字列の中で最も長い文字列を見つけます。 # --instructions-- 文字列の配列を取り、長さが最長であるすべての文字列を返す関数を記述してください。 # --hints-- `longestString` は関数とします。 ```js assert(typeof longestString == 'function'); ``` `longestString(["a", "bb", "ccc", "ee", "f", "ggg"])` は配列を返す必要があります。 ```js assert(Array.isArray(longestString(['a', 'bb', 'ccc', 'ee', 'f', 'ggg']))); ``` `longestString(["a", "bb", "ccc", "ee", "f", "ggg"])` は `["ccc", "ggg"]` を返す必要があります。 ```js assert.deepEqual(longestString(['a', 'bb', 'ccc', 'ee', 'f', 'ggg']), [ 'ccc', 'ggg' ]); ``` `longestString(["afedg", "bb", "sdccc", "efdee", "f", "geegg"])` は `["afedg", "sdccc", "efdee", "geegg"]` を返す必要があります。 ```js assert.deepEqual( longestString(['afedg', 'bb', 'sdccc', 'efdee', 'f', 'geegg']), ['afedg', 'sdccc', 'efdee', 'geegg'] ); ``` `longestString(["a", "bhghgb", "ccc", "efde", "fssdrr", "ggg"])` は `["bhghgb", "fssdrr"]` を返す必要があります。 ```js assert.deepEqual( longestString(['a', 'bhghgb', 'ccc', 'efde', 'fssdrr', 'ggg']), ['bhghgb', 'fssdrr'] ); ``` `longestString(["ahgfhg", "bdsfsb", "ccc", "ee", "f", "ggdsfg"])` は `["ahgfhg", "bdsfsb", "ggdsfg"]` を返す必要があります。 ```js assert.deepEqual( longestString(['ahgfhg', 'bdsfsb', 'ccc', 'ee', 'f', 'ggdsfg']), ['ahgfhg', 'bdsfsb', 'ggdsfg'] ); ``` `longestString(["a", "bbdsf", "ccc", "edfe", "gzzzgg"])` は `["gzzzgg"]` を返す必要があります。 ```js assert.deepEqual(longestString(['a', 'bbdsf', 'ccc', 'edfe', 'gzzzgg']), [ 'gzzzgg' ]); ``` # --seed-- ## --seed-contents-- ```js function longestString(strings) { } ``` # --solutions-- ```js function longestString(strings) { var mx = 0; var result = [] strings.forEach(function (e) { if (e.length > mx) { mx = e.length result = [e] } else if (e.length == mx) result.push(e) }) return result } ```