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

Javascript 给定一个字符串数组,返回另一个包含其所有最长字符串的数组,javascript,Javascript,1.我的代码有什么问题? 问题是:给定一个字符串数组,返回另一个包含其所有最长字符串的数组 function allLongestStrings(inputArray) { var newarr = []; if( inputArray.length == 1){ return inputArray; } var longestWord = inputArray.sort(function(a, b) {

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;
    }
`
函数AllLongestString(inputArray){
var newarr=[];
如果(inputArray.length==1){
返回输入;
}
var longestWord=inputArray.sort(函数(a,b){
返回b.length-a.length;
});
for(var i=0;ilongestWord[i+1]){
新推送(最长字[i]);
}
}
返回newarr;
}
`

根据您的代码,“longestWord”的0索引处的元素将是最长的单词。 因为您需要所有最长的元素,所以在“longestWord”变量中取第一个元素的长度,使用for循环检查所有长度等于“longestWord”第一个元素的元素,如果长度相等,则将该元素推入待返回数组:

    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']
函数AllLongestString(inputArray){
var newarr=[];
如果(inputArray.length==1){
返回输入;
}
var longestWord=inputArray.sort(函数(a,b){
返回b.length-a.length;
});
var lengthOfLongestWord=longestWord[0]。length;//返回最长单词的长度
for(var i=0;i
这里有一行代码:

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

这不是
javascript
代码,但您可以遵循这一点

$first = allLongestStrings(["123", "2", "abc", "5"]);
print_r($first); //return["123", "abc"]
$second = allLongestStrings(["apple", "orange", "banna", "ABCDE","1234"]);
print_r($second); //return["apple", "banna", "ABCDE"]

function allLongestStrings($inputArray) {
    $l = 0;
    $final_array = array();
    $n = 0;
    for($i=0; $i<sizeof($inputArray); $i++){
        if($l < strlen($inputArray[$i])){
            if($n > 0){
                $n = 0;
                $l = strlen($inputArray[$i]);
                $final_array[$n] = $inputArray[$i];
            } else {
                $l = strlen($inputArray[$i]);
                $final_array[$n] = $inputArray[$i];
            }
            $n++;
        } else if($l == strlen($inputArray[$i])){
            $final_array[$n] = $inputArray[$i];
            $n++;
        }
    }
    return $final_array;
}
$first=所有最长的字符串([“123”、“2”、“abc”、“5”);
打印(第一)//返回[“123”,“abc”]
$second=所有最长的字符串([“apple”、“orange”、“banna”、“ABCDE”、“1234”]);
打印(秒)//return[“apple”、“banna”、“ABCDE”]
函数allLongestStrings($inputArray){
$l=0;
$final_array=array();
$n=0;
对于($i=0;$i 0){
$n=0;
$l=strlen($inputArray[$i]);
$final_数组[$n]=$inputArray[$i];
}否则{
$l=strlen($inputArray[$i]);
$final_数组[$n]=$inputArray[$i];
}
$n++;
}else if($l==strlen($inputArray[$i])){
$final_数组[$n]=$inputArray[$i];
$n++;
}
}
返回$final_数组;
}
首先,将元素的大小存储在数组中,然后找到该数组的最大值
然后找到元素
最后,将元素存储在一个单独的列表中,其中包含阵列中最大大小的元素

您的具体要求是什么?您只是想按长度对输入数组排序吗?还是只取n个最大的字符串?或者试图只获取比x长的字符串?您的代码按长度排序,每种长度只保留一个字符串。我不明白你的问题。请澄清您希望得到的结果。我需要返回最长的字符串。对于inputArray=[“abc”,“cbd”,“zzzzzz”,“a”,“abcdef”,“asasa”,“aaaaa”],输出应该是所有最长的字符串(inputArray)=[“zzzzzz”,“abcdef”,“aaaaaaa”]。只需计算出OP想要的内容就值得投票……收集最长单词的For循环可能是一个while循环,一旦找到较短的单词就会终止。;-)
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