【发布时间】:2017-06-21 08:02:20
【问题描述】:
我正在创建一个返回给定数组中最短字符串的函数。 如果有关系,它应该返回出现在给定数组中的第一个元素。期望给定的数组具有字符串以外的值。如果给定的数组是空的,它应该返回一个空字符串。如果给定的数组不包含字符串,它应该返回一个空字符串。
这是我的代码:
function findShortestWordAmongMixedElements(arr) {
if(arr.length === 0 && arr.indexof(arr)){
return '';
} else{
return arr.reduce(function(a, b) {
return a.length >= b.length ? a : b;
})
}
}
var output = findShortestWordAmongMixedElements([4, 'two', 2, 'three']);
console.log(output); // --> 'two'
返回三个而不是两个。还有arr.indexof(arr) 检查数组是否有一些字符串。
【问题讨论】:
-
减少签名是:
reduce(function(current_result, current_item, current_index), initial_value) -
遍历数组,使用
typeof检查值的类型。创建一个包含最短字符串的变量。假设要查找的第一个字符串为最短字符串,然后与找到的后续字符串进行比较。如果值比当前最短的字符串短,则仅替换。
标签: javascript arrays string