给定一个字符串数组,返回另一个包含所有最长字符串的数组

时间:2017-08-22 00:25:44

标签: javascript

1.我的代码出了什么问题? 这是一个问题:给定一个字符串数组,返回另一个包含所有最长字符串的数组

function allLongestStrings(inputArray) {
       var newarr = [];

       if( inputArray.length == 1){
          return inputArray;
       }
        var longestWord = inputArray.sort(function(a, b) {
         return b.length - a.length;
       });
       for(var i = 0; i < longestWord.length; i++){
         if(longestWord[i] > longestWord[i+1]){
           newarr.push(longestWord[i]);
         }
       }

       return newarr;
    }
`

3 个答案:

答案 0 :(得分:0)

根据你的代码,“最长的”字号的0索引处的元素是&#39;将是最长的词。 由于您需要所有最长的元素,因此请在第一个元素的长度中选择最长的元素&#39;变量,使用for循环检查所有长度等于&lt; longword&#39;的第一个元素的元素,如果长度相等,则推送要返回的数组中的元素:

    function allLongestStrings(inputArray) {
    var newarr = [];

    if( inputArray.length == 1){
      return inputArray;
    }
    var longestWord = inputArray.sort(function(a, b) {
     return b.length - a.length;
    });
    var lengthOfLongestWord = longestWord[0].length;//returns length of longest word


    for(var i = 0; i < longestWord.length; i++){
     if(longestWord[i].length == lengthOfLongestWord){
       newarr.push(longestWord[i]);
     }
    }

    return newarr;
    }


    var yolo = allLongestStrings(['hello', 'my ', 'friends']);
    console.log(yolo); //reuturns['friends']

    var yolo1 = allLongestStrings(['hey', 'whats', 'up', 'matey']);
    console.log(yolo1); //returns['whats','matey']

答案 1 :(得分:0)

这里是一个行代码:

allLongestStrings = (inputArray) => {
    return inputArray.sort((a, b) => b.length - a.length)
           .filter(m => m.length == inputArray[0].length)
}

答案 2 :(得分:0)

def allLongestStrings(inputArray):
    m=[]
    for i in inputArray:
        m.append(len(i))
    count=max(m)
    l=[]
    for i in inputArray:
        if(len(i)==count):
            l.append(i)
    return l
        

首先将元素的大小存储在一个数组中,然后找到该数组的最大值
然后找到元素 最后,将元素存储在具有数组中最大尺寸元素的单独列表中