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;
}
`
答案 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
首先将元素的大小存储在一个数组中,然后找到该数组的最大值
然后找到元素
最后,将元素存储在具有数组中最大尺寸元素的单独列表中