我正在处理的练习问题:
编写一个名为“findShortestWordAmongMixedElements”的函数。
给定一个数组,
findShortestWordAmongMixedElements
返回给定数组中最短的字符串。注:
* 如果存在并列,它应该返回在给定数组中出现的第一个元素。
* 期望给定数组存在字符串以外的值。
* 如果给定数组为空,则应返回空字符串。
* 如果给定数组不包含字符串,则应返回一个空字符串。
这是我当前编写的代码:
function findShortestWordAmongMixedElements(array) {
if (array.length === 0)) {
return '';
}
var result = array.filter(function (value) {
return typeof value === 'string';
});
var shortest = result.reduce(function (a, b) {
return a.length <= b.length ? a : b;
});
return shortest;
}
var newArr = [ 4, 'two','one', 2, 'three'];
findShortestWordAmongMixedElements(newArr);
//returns 'two'
一切都正常,但我无法弄清如何通过“如果给定的数组不包含字符串”的测试。 我在考虑在if
语句中添加某种!array.includes(string??)
,但不确定该怎么做。
有任何提示吗?或者更聪明的编写此函数的方法