Javascript 如何返回数组中最长的字符串—;即使数组中包含的项不是字符串,也可以吗?
假设我正在编写这样一个函数:Javascript 如何返回数组中最长的字符串—;即使数组中包含的项不是字符串,也可以吗?,javascript,arrays,string,sorting,Javascript,Arrays,String,Sorting,假设我正在编写这样一个函数: function longestString (someArray) { // code } 如果someArray=['word','longer phrase',['a','b','c'],123456789101121314151617],我希望函数只返回数组中最长的字符串,忽略整数和可能位于其中的其他数组。我试过这个: function longestString (someArray) { return someArray.sort(fu
function longestString (someArray) {
// code
}
如果someArray=['word','longer phrase',['a','b','c'],123456789101121314151617]
,我希望函数只返回数组中最长的字符串,忽略整数和可能位于其中的其他数组。我试过这个:
function longestString (someArray) {
return someArray.sort(function (a, b) { return b.length - a.length; })[0];
}
它不起作用,我现在被卡住了/ 只过滤字符串元素并执行此操作
function longestString (someArray) {
return someArray
.filter(function(a){ return typeof(a)=='string' })
.sort(function (a, b) { return b.length - a.length; })[0];
}
只筛选字符串元素并执行此操作
function longestString (someArray) {
return someArray
.filter(function(a){ return typeof(a)=='string' })
.sort(function (a, b) { return b.length - a.length; })[0];
}
试试这个:
function longestString(someArray) {
var result = "";
for (var i = 0; i < someArray.length; i++) {
if ((typeof someArray[i] === "string") && (someArray[i].length > result.length)) {
result = someArray[i];
}
}
return result;
}
函数最长字符串(someArray){
var结果=”;
for(var i=0;iresult.length)){
结果=someArray[i];
}
}
返回结果;
}
试试这个:
function longestString(someArray) {
var result = "";
for (var i = 0; i < someArray.length; i++) {
if ((typeof someArray[i] === "string") && (someArray[i].length > result.length)) {
result = someArray[i];
}
}
return result;
}
函数最长字符串(someArray){
var结果=”;
for(var i=0;iresult.length)){
结果=someArray[i];
}
}
返回结果;
}
尝试执行以下操作:
function longestString (someArray) {
$longest_string = '';
foreach ($someArray as $value)
{
$current_length = strlen($longest_string);
if(strlen($value) > $current_length ) $longest_string = $value;
}
return $longest_string;
}试着做:
function longestString (someArray) {
$longest_string = '';
foreach ($someArray as $value)
{
$current_length = strlen($longest_string);
if(strlen($value) > $current_length ) $longest_string = $value;
}
return $longest_string;
}试试这个
var a=['word','longer-phrase',['a','b','c',123456789101121314151617];
返回最长字符串(a);
函数返回最长字符串(arr){
var longestString='';
对于(变量i=0;ilongestString.length){
longestString=arr[i];
}
};
返回最长的字符串;
}
试试这个
var a=['word','longer-phrase',['a','b','c',123456789101121314151617];
返回最长字符串(a);
函数返回最长字符串(arr){
var longestString='';
对于(变量i=0;ilongestString.length){
longestString=arr[i];
}
};
返回最长的字符串;
}
以下是我的方法。实际上,您只想知道短语是否比前一个短语长,以及它是否是字符串
var someArray=['word','longer phrase',['a','b','c',123456789101121314151617]
var longestString=函数(arr){
var=”;
对于(变量i=0;i
以下是我的方法。实际上,您只想知道短语是否比前一个短语长,以及它是否是字符串
var someArray=['word','longer phrase',['a','b','c',123456789101121314151617]
var longestString=函数(arr){
var=”;
对于(变量i=0;i
当我看到这个问题时,答案是0,当我完成编写和测试我的函数时,答案是5。但这是我的方法:
这里的关键是首先只过滤字符串。然后,列出数组中的所有长度。然后使用该阵列,您可以在较大的阵列上获得匹配
function longestString (someArray) {
//we only need strings, so first we will filter all the data
var stringsOnly = [];
for (var i = 0; i < someArray.length; i++) {
if(typeof(someArray[i]) === 'string'){
stringsOnly.push(someArray[i]);
}
};
//Now with an array of just strings, we can get their indivial lenghts
var stringLengths = [];
for (var i = 0; i < stringsOnly.length; i++) {
var currentString = stringsOnly[i];
stringLengths.push(currentString.length);
};
//Get the max length
var maxLength = Math.max.apply(Math,stringLengths);
//get a string wich length equals to maxLength
for (var i = 0; i < stringsOnly.length; i++) {
var theString = stringsOnly[i];
if(theString.length === maxLength){return theString};
};
}
函数最长字符串(someArray){
//我们只需要字符串,所以首先我们将过滤所有数据
var stringsOnly=[];
for(var i=0;i
此函数将返回最大的字符串。如果多个字符串具有相同的长度,它将返回第一个字符串。但是,如果要获取各种字符串,可以对上述函数进行一些小修改:
function multipleLongestString (someArray) {
//we only need strings, so first we will filter all the data
var stringsOnly = [];
for (var i = 0; i < someArray.length; i++) {
if(typeof(someArray[i]) === 'string'){
stringsOnly.push(someArray[i]);
}
};
//Now with an array of just strings, we can get their indivial lenghts
var stringLengths = [];
for (var i = 0; i < stringsOnly.length; i++) {
var currentString = stringsOnly[i];
stringLengths.push(currentString.length);
};
//Get the max length
var maxLength = Math.max.apply(Math,stringLengths);
//modification here
longests = [];
//get a string wich length equals to maxLength
for (var i = 0; i < stringsOnly.length; i++) {
var theString = stringsOnly[i];
if(theString.length === maxLength){longests.push(theString)};
};
return longests;
}
函数multipleLongestString(someArray){
//我们只需要字符串,所以首先我们将过滤所有数据
var stringsOnly=[];
for(var i=0;i
这是一个额外的可能会帮助你以后。但是,如果您只想要最大的一个,请使用第一个函数。我希望我的回答是相关的
:)当我看到这个问题时,它有0个答案,当我完成编写和测试我的函数时,有5个答案。但这是我的方法: 这里的关键是首先只过滤字符串。然后,列出数组中的所有长度。然后使用该阵列,您可以在较大的阵列上获得匹配
function longestString (someArray) {
//we only need strings, so first we will filter all the data
var stringsOnly = [];
for (var i = 0; i < someArray.length; i++) {
if(typeof(someArray[i]) === 'string'){
stringsOnly.push(someArray[i]);
}
};
//Now with an array of just strings, we can get their indivial lenghts
var stringLengths = [];
for (var i = 0; i < stringsOnly.length; i++) {
var currentString = stringsOnly[i];
stringLengths.push(currentString.length);
};
//Get the max length
var maxLength = Math.max.apply(Math,stringLengths);
//get a string wich length equals to maxLength
for (var i = 0; i < stringsOnly.length; i++) {
var theString = stringsOnly[i];
if(theString.length === maxLength){return theString};
};
}
函数最长字符串(someArray){
//我们只需要字符串,所以首先我们将过滤所有数据
var stringsOnly=[];
for(var i=0;i