我有一个仅返回给定数组的最长属性的函数。
这是一个for循环,用于将循环属性分配给变量,该属性的长度比变量的长度长。
最后,它返回这个新变量。但是我在第10行收到一个错误,它无法读取未定义的长度。
for循环中的someArray [i] .length似乎有问题。
function longestString(i) {
// i will be an array.
// return the longest string in the array
var someArray = i;
console.log(someArray);
var longestItem = someArray[0];
console.log(longestItem);
for (i = 0; someArray.length; i++) {
if (longestItem.length < someArray[i].length) {
console.log(longestItem);
console.log(someArray[i]);
longestItem = someArray[i];
}
}
document.write(longestItem);
console.log(longestItem);
return longestItem;
}
longestString(['a', 'ab', 'abc']) // should return 'abc'
有什么建议?
您for-loop
的条件有误。
它应该像下面给出的。
for (i = 0; i < someArray.length; i++)
看看这个小提琴。
这是完整的代码。
function longestString(i) {
// i will be an array.
// return the longest string in the array
var someArray = i;
document.write(someArray); // just testing
var longestItem = someArray[0];
for (i = 0; i < someArray.length; i++) { //Changes in the condition
if (longestItem.length < someArray[i].length) {
longestItem = someArray[i];
}
}
document.write(longestItem);
return longestItem;
}
longestString(['a', 'ab', 'abc']) // should return 'abc'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句