我正在做一个要求数组中最短字符串长度的赋值。如果数组为空,它应该返回0。我一直收到一条错误消息,表示它没有处理关系。
此外,测试数组arr = ['one', 'two', 'three', 'aa']
会返回3
而不是2
的值,因为它应该...
function getLengthOfShortestElement(arr) {
var array;
if (arr.length > 0) {
for (i = 0; i < arr.length; i++) {
if (typeof array === "undefined") {
array = arr[i].length;
} else if (arr[i].length < array) {
array = arr[i].length;
}
return array;
}
} else {
return 0;
}
}
答案 0 :(得分:1)
有人在评论中指出了这一点,只是将return
移出for
循环的正文。
function getLengthOfShortestElement(arr) {
var array;
if (arr.length > 0) {
for (i = 0; i < arr.length; i++) {
if (typeof array === "undefined") {
array = arr[i].length;
} else if (arr[i].length < array) {
array = arr[i].length;
}
}
return array;
} else {
return 0;
}
}
var arr = ['one', 'two', 'three', 'aa'];
document.write(getLengthOfShortestElement(arr));
答案 1 :(得分:0)
使用数学库的更简单方法是:
function getMin(arr){
if(!arr.length) return 0
return Math.min.apply(null, arr.map(el => el.length))
}