返回数组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!!这帮了大忙,加上清楚的解释!