开发者问题收集

调用设置为变量的函数错误:“未捕获的类型错误:无法读取未定义的属性‘长度’”

2020-03-01
92

我正在遵循 leetcode 解决方案并尝试在我的 IDE 中理解它,但是当我尝试调用它时出现上述错误。

        var romanToInt = function(s) {
            const map = {
                I: 1,
                V: 5,
                X: 10,
                L: 50,
                C: 100,
                D: 500,
                M: 1000
            };
            let i = s.length;
            let result = 0;

            while (i--) {
                const curr = map[s.charAt(i)];
                const prev = map[s.charAt(i - 1)];

                result += curr; 

                if (prev < curr) {
                    result -= prev; 
                    i -= 1;
                }
            }

            return result;
        };
        romanToInt();

我应该怎么做?

2个回答

此行导致错误:

261488358

当您以这样的调用函数时: romantoint(); > 参数 s函数{... )是 undefined 当您将括号中的函数传递给函数时。

未定义的 没有属性 长度 。这就是错误的含义。该属性可在字符串上可用,这意味着您需要将字符串传递给这样的函数:

6044457223

该函数将从背面开始迭代从字符串开始。转到开始。

请参阅:

585366193
Max
2020-03-01

搞明白了。 我必须这样称呼它:

romanToInt("V");
console.log("works", romanToInt("V"));
John White
2020-03-01