返回数组Javascript中第一个出现的最长字符串

返回数组Javascript中第一个出现的最长字符串,javascript,arrays,Javascript,Arrays,我的任务是查找数组中最长字符串的第一个(而不仅仅是最长的)匹配项。尝试跟踪,但不断返回第二个事件 function maxDigits (arr) { var toStr = arr.map(value => String(value)); var longest = toStr.reduce(function (a, b) { return a.length > b.length ? a : b; }) return Number(longest) } maxDigits([12,

我的任务是查找数组中最长字符串的第一个(而不仅仅是最长的)匹配项。尝试跟踪,但不断返回第二个事件

function maxDigits (arr) {
var toStr = arr.map(value => String(value));
var longest = toStr.reduce(function (a, b) { return a.length > b.length ? a : b; })
return Number(longest)
}
maxDigits([12, 12345, 67890, 34])  // Getting 67890, target is 12345
你的建议最好有一些解释。请不要用jQuery。
非常感谢

如果下一个字符串的长度不大于当前字符串,则希望保留当前字符串,因此,如果当前字符串的长度大于下一个字符串,则不要仅保留当前字符串,而是在长度相等时保留当前字符串

比较长度时,请使用
=
而不是

a.length >= b.length ? a : b
或者,仅当当前长度小于下一个长度时,才使用下一个:

a.length < b.length ? b : a
例如:

函数最大位数(arr){
var-toStr=arr.map(值=>String(值));
var longest=toStr.reduce(函数(a,b){
返回b.length>a.length?b:a;
})
返回编号(最长)
}
var结果=最大位数([12,12345,67890,34]);

控制台日志(结果)如果下一个字符串长度不大于当前字符串,则希望保留当前字符串,因此,如果当前字符串的长度大于下一个字符串,则不要仅保留当前字符串,而是在长度相等时保留它

比较长度时,请使用
=
而不是

a.length >= b.length ? a : b
或者,仅当当前长度小于下一个长度时,才使用下一个:

a.length < b.length ? b : a
例如:

函数最大位数(arr){
var-toStr=arr.map(值=>String(值));
var longest=toStr.reduce(函数(a,b){
返回b.length>a.length?b:a;
})
返回编号(最长)
}
var结果=最大位数([12,12345,67890,34]);
控制台日志(结果)或更简单地说

console.log(
[12, 12345, 67890, 34]
.map(函数(a){返回a.toString()})
.reduce(函数(a,b){返回a.length>=b.length?a:b;})
);或更简单地说

console.log(
[12, 12345, 67890, 34]
.map(函数(a){返回a.toString()})
.reduce(函数(a,b){返回a.length>=b.length?a:b;})

);仅使用一行代码,您可以执行以下操作:

var nums=[12,12345,67890,34];
结果=nums.reduce((p,c)=>Math.floor(Math.log10(p))控制台日志(结果)仅使用一行代码,您可以执行以下操作:

var nums=[12,12345,67890,34];
结果=nums.reduce((p,c)=>Math.floor(Math.log10(p))控制台日志(结果)
'12345'。长度>'67890'。长度?'12345':“67890”
…它将返回哪个?
const maxDigits=arr=>arr.reduce((最长,项)=>String(项)。length>String(最长)。length?项:最长)
arr.map(值=>String(值))
==
arr.map(字符串)
'12345'。长度>'67890'。长度?'12345':“67890”
…它将返回哪个?
const maxDigits=arr=>arr.reduce((最长,项)=>String(项)。length>String(最长)。length?项:最长)
arr.map(value=>String(value))
==
arr.map(String)
谢谢你,Ori!!这帮了大忙,加上清楚的解释!谢谢你,Ori!!这帮了大忙,加上清楚的解释!