# JavaScript: Take any number of iterable objects or objects with a length property and returns the longest one

## JavaScript fundamental (ES6 Syntax): Exercise-79 with Solution

Write a JavaScript program to take any number of iterable objects or objects with a length property and return the longest one.

• Use Array.prototype.reduce(), comparing the length of objects to find the longest one.
• If multiple objects have the same length, the first one will be returned.
• Returns undefined if no arguments are provided.

Sample Solution:

JavaScript Code:

``````//#Source https://bit.ly/2neWfJ2
// Define the function 'longestItem' to find the longest item among the provided values.
const longestItem = (...vals) =>
// Spread the provided values into an array, sort the array by the length of each item in descending order,
// and return the first (longest) item.
[...vals].sort((a, b) => b.length - a.length)[0];

// Example usages:
console.log(longestItem('this', 'is', 'a', 'testcase')); // Outputs: 'testcase'
console.log(longestItem(...['a', 'ab', 'abc'])); // Outputs: 'abc'
console.log(longestItem(...['a', 'ab', 'abc'], 'abcd')); // Outputs: 'abcd'
console.log(longestItem([1, 2, 3], [1, 2], [1, 2, 3, 4, 5])); // Outputs: [1, 2, 3, 4, 5]
console.log(longestItem([1, 2, 3], 'foobar')); // Outputs: 'foobar'
```
```

Output:

```testcase
abc
abcd
[1,2,3,4,5]
foobar
```

Visual Presentation:

Flowchart:

Live Demo:

See the Pen javascript-basic-exercise-79-1 by w3resource (@w3resource) on CodePen.

Improve this sample solution and post your code through Disqus

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.

﻿