无法在 Javascript 中打印出字符串长度
2021-02-01
93
我今天遇到了一个非常奇怪的问题,需要在这里寻求帮助。
因此,我有以下函数,并带有一些调试打印输出:
function allLongestStrings(inputArray) {
console.log(inputArray);
inputArray.sort((a,b)=> {
return b.length-a.length;
});
console.log(inputArray);
console.log(inputArray.length)
console.log(inputArray[0].length)
console.log(typeof(inputArray[1]))
// console.log(inputArray[1].length)
}
此代码片段的控制台输出是:
[ 'aba', 'aa', 'ad', 'vcd', 'aba' ]
[ 'aba', 'vcd', 'aba', 'aa', 'ad' ]
5
3
string
当我取消注释最后一行(我试图获取字符串数组中字符串的长度)时,出现以下错误:
TypeError: Cannot read property 'length' of undefined
at allLongestStrings (main.js on line 15:33)
at _runwjbyf (main.js in the pre-written template:28)
at getUserOutputs (main.js in the pre-written template:36)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
这一定是一些愚蠢的编码错误,但谁能告诉我它是什么?
2个回答
根据您的屏幕截图,您的代码在测试案例上失败
AlllongestStrings(['aa'])
在这种情况下,输入只有一个元素,因此
inputArray [1]
是未定义的。为了使您的实现强大。
或者,如果将
inputArray
gurate是一个数组,则可以删除您的调试语句,因为代码的另一部分有效。
lastr2d2
2021-02-01
尝试将 inputArray[i] 存储在一个变量中,然后尝试控制台该 variable.length
Ahmed Shaikh
2021-02-01