开发者问题收集

无法在 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