TIP: Finding a longest string in an array

deejaywillzz

JF-Expert Member
Joined
Mar 11, 2014
Posts
637
Reaction score
224
PHP:
var arr = ['first item', 'second item is longer than the third one', 
           'third longish item'];

var lgth = 0;
var longest;

for(var i=0; i < arr.length; i++){
    if(arr[i].length > lgth){
        var lgth = arr[i].length;
        longest = arr[i];
    }      
} 

alert(longest);
 

Why do you do "var lgth = arr.length" wakati umesha-instantiate "var lgth = 0" pale juu. Shouldn't "lgth = arr.length" be enough? without the "var".
 
Code:
[COLOR=#000000][COLOR=#007700]var [/COLOR][COLOR=#0000BB]arr [/COLOR][COLOR=#007700]= [[/COLOR][COLOR=#DD0000]'first item'[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]'second item is longer than the third one'[/COLOR][COLOR=#007700], 
           [/COLOR][COLOR=#DD0000]'third longish item'[/COLOR][COLOR=#007700]];
[/COLOR][/COLOR][COLOR=#ff0000]
[B]var lgth = 0;[/B][/COLOR][COLOR=#000000][COLOR=#007700]
var [/COLOR][COLOR=#0000BB]longest[/COLOR][COLOR=#007700];

for(var [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]=[/COLOR][COLOR=#0000BB]0[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]i [/COLOR][COLOR=#007700]< [/COLOR][COLOR=#0000BB]arr[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]length[/COLOR][COLOR=#007700]; [/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]++){
    if([/COLOR][COLOR=#0000BB]arr[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]].[/COLOR][COLOR=#0000BB]length [/COLOR][COLOR=#007700]> [/COLOR][COLOR=#0000BB]lgth[/COLOR][COLOR=#007700]){
        [/COLOR][/COLOR][COLOR=#ff0000][B]var lgth = arr[i].length;[/B][/COLOR][COLOR=#000000][COLOR=#007700]
        [/COLOR][COLOR=#0000BB]longest [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]arr[/COLOR][COLOR=#007700][[/COLOR][COLOR=#0000BB]i[/COLOR][COLOR=#007700]];
    }      
} 

[/COLOR][COLOR=#0000BB]alert[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]longest[/COLOR][COLOR=#007700]);  [/COLOR][/COLOR]

Sure kama anavyosema ub16 Hili ni tatizo
 


In Ruby

Code:
   array = ["first word", "second word", "third word", "the one that could be the longest"]
   array.max{|a, b| a.length <=> b.length }
'
Or you could just do in one line
Code:
    ["first word", "second word", "third word", "the one that could be the longest"].max{|x, y| x.length <=> y.length }

Less lines of code, no semi colons, everything is an object in Ruby.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…