有没有一种方法可以在字符串数组中找到最长的字符串?
像arr.Max(x => x.Length);
什么?
有没有一种方法可以在字符串数组中找到最长的字符串?
像arr.Max(x => x.Length);
什么?
从Javascript 1.8/ECMAScript 5 开始可用,并且在大多数旧浏览器中可用:
var longest = arr.reduce(
function (a, b) {
return a.length > b.length ? a : b;
}
);
否则,一个安全的选择:
var longest = arr.sort(
function (a, b) {
return b.length - a.length;
}
)[0];
一个老问题的新答案:在 ES6 中,你可以做得更短:
Math.max(...(x.map(el => el.length)));
我会做这样的事情
var arr = [
'first item',
'second item is longer than the third one',
'third longish item'
];
var lgth = 0;
var longest;
for (var i = 0; i < arr.length; i++) {
if (arr[i].length > lgth) {
var lgth = arr[i].length;
longest = arr[i];
}
}
console.log(longest);
也许不是最快的,但肯定非常可读:
function findLongestWord(array) {
var longestWord = "";
array.forEach(function(word) {
if(word.length > longestWord.length) {
longestWord = word;
}
});
return longestWord;
}
var word = findLongestWord(["The","quick","brown", "fox", "jumped", "over", "the", "lazy", "dog"]);
console.log(word); // result is "jumped"
从 IE9+ 开始支持数组函数forEach。
var arr = [ 'fdgdfgdfg', 'gdfgf', 'gdfgdfhawsdgd', 'gdf', 'gdfhdfhjurvweadsd' ];
arr.sort(function (a, b) { return b.length - a.length })[0];