循环遍历n个对象并返回最长的字符串

时间:2013-12-23 01:15:04

标签: javascript object for-in-loop

我正在尝试编写一个函数,该函数接受一个值为字符串并返回最长字符串的对象。因为我是JS的新手,所以我对我所缺少的东西感到困惑。谢谢你的帮助!

我觉得.length是问题的一部分,但我不知道如何获得长度。这是我的代码:

var myObj = {first: 'am', second: 'abc', third: 'greg', fourth: 'helpme', fifth: 'phillllll'};

var myFunc = function (object) {
    var longestString = object[key];
    for (var key in object) {
      if (object[key].length > longestString.length) {
        longestString = object[key];
      }
    }; 
    return longestString;
}   

1 个答案:

答案 0 :(得分:4)

.length不是问题,你实际上是正确使用它。此外,你没有遗漏任何东西,你只是对逻辑感到困惑,因为你的代码中有 问题......

所以我修了一下(试试这个):

var myObj = {first: 'am', second: 'abc', third: 'greg', fourth: 'helpme', fifth: 'phillllll'};

function myFunc (object) {
    var longestString = '';
    for (var key in object) {
      if (object[key].length > longestString.length) {
        longestString = object[key];
      }
    }
    return longestString;
}

alert(myFunc(myObj));
console.log(myFunc(myObj));

为什么这样做?

这是有效的,因为将longestString初始化为空String是创建稍后将更改的字符串的好方法,这是我将变量的定义更改为,因为变量keys是{ {3}}直到您到达null,并且您需要同时定义两个变量,因此技术上longestStringnull

(顺便说一句,我这样做了,它会在控制台中记录函数的输出并提醒输出。)

你的代码有很多语法错误,作为一个新用户,我认识到你可能并不是全都知道Javascript,但在大多数浏览器中称为控制台的东西,并且在线在大多数IDE中,您可以使用(如for loop)。

你可以看一下

JSBin使用这个新代码。