Javascript:从数组中查找最长的名称

时间:2015-09-09 19:55:56

标签: javascript if-statement

我正在尝试学习javascript而我刚开始。

所以我创建了自己的项目。我有一系列里弗斯,想比较他们的名字长度。

我知道它不是用代码形式写的 - 因为我开始 - 我喜欢用英语写我必须做的事。

我不确定如何使用这么大的比较来设置if / else语句。

任何人都可以通过指向正确的方向来帮助我完成第3步,而不会给我一个答案吗?

谢谢!

第1步 - 列出河流名称
第2步 - 列出河流名称长度
第3步 - 列出最长的河流并列出名称中的字母数 第4步 - 列出最短河流并列出字母数量
第5步 - 列出最长和最短的字母数量~Modulo

/ 第1步 / - 完成

var rivers = ["Mississippi","Delaware","Ohio","Sangamon","Black","Current","Chattahochee"];

for (var i = 0; i < rivers.length; i++) {
    console.log("An interesting "+rivers[i]+" River fact:")
    ;



/ 第2步 / - 完成

  console.log("The "+rivers[i]+" River's name contains "+ (rivers[i].length)+" letters in it.")
    ;
}

/ 第3步 / 这里我想比较字母字符串找到数组中最长的名字。然后我想要输出 说“名字最长的河是X河,它有Y字母。&#34; 但我不明白如何设置if-else语句。

for (var i = 0; i < rivers.length; i++) {


If A.length > B.length Keep A else keep B

If A.length > C.length Keep A else keep C
If B.length > C.length Keep B else keep C

If A.length > D.length Keep A else keep D
If B.length > D.length Keep B else keep D
If C.length > D.length Keep C else keep D

If A.length > E.length Keep A else keep E
If B.length > E.length Keep B else keep E
If C.length > E.length Keep C else keep E
If D.length > E.length Keep D else keep E

If A.length > F.length Keep A else keep F
If B.length > F.length Keep B else keep F
If C.length > F.length Keep C else keep F
If D.length > F.length Keep D else keep F
If E.length > F.length Keep E else keep F

If A.length > G.length Keep A else keep G
If B.length > G.length Keep B else keep G
If C.length > G.length Keep C else keep G
If D.length > G.length Keep D else keep G
If E.length > G.length Keep E else keep G
If F.length > G.length Keep F else keep G

2 个答案:

答案 0 :(得分:0)

+1 @Pointy的评论。

@Joseph梦想家的答案是一个非常好的答案(最好的?),但对初学者来说可能有点复杂。

回想Pointy的评论。你会怎么做?一个循环。你还需要什么?存储的值。最后,您需要比较存储值的长度与循环中的当前值,如果当前值较长,则更新存储的值。

现在,约瑟夫的reduce答案几乎就是这样,但非常优雅(除非你已经习惯了,否则通常难以理解)。首先尝试使用基本的for循环来完成此操作。当你&#34;得到&#34;循环,您将更好地理解reduce解决方案(另外,您可能需要阅读conditional ternary operators以更好地理解reduce解决方案。)

剧透:http://jsfiddle.net/v7wvg7ns/

(我不能在没有代码的情况下链接小提琴,所以这里有一些代码)

// Ignore this

答案 1 :(得分:0)

 function longFriend(arr){
            var long = arr[0];
             for (let i = 0; i < arr.length; i++) {
                const element = arr[i];
                    if( long.length < element.length){
                        long = element
                        }
                             }
                            return long
                                }

                var  friend = ["abir","abdullah","robin","abdurrohim","ali"]
                var longword = longFriend(friend)
                console.log(longword)