我尝试从充满不同类型原语的数组中提取最短字符串的尝试失败。我究竟做错了什么?还有其他东西吗
var bands = ([30, 'Seconds', 'to', 'Mars', 1, 'Direction', true]);
function tinyString(collection) {
var tinyStr = '';
return collection.
filter(function (x) {
return typeof x === 'string'
}).
forEach(function (y) {
if (tinyStr > y){
return tinyStr = y
}
})
}
console.log(bands); // --> 'to'
最佳答案
您可以按长度和类型进行排序,然后返回第一个
var bands = ([30, 'Seconds', 'to', 'Mars', 1, 'Direction', true]);
function tinyString(collection) {
return collection.sort((a,b)=>typeof a === 'string' ? a.length-b.length:1).shift();
}
console.log( tinyString(bands) );