在Node.js应用程序中,“无法读取属性”的原因是“未定义的”
我试图通过join不同的元素来形成一个URL。 我正进入(状态
TypeError:无法读取未定义的属性'replace'。
当我运行下面的代码。 任何build议,非常感谢!
... function joinUrlElements() { "use strict"; var re1 = new RegExp('^\\/|\\/$', 'g'), elts = Array.prototype.slice.call(arguments); return elts.map(function (element) { return element.replace(re1, ""); }).join('/'); } ....
这意味着你的elts
有一个项目,其值设置为undefined
。
也可以用ES6
使用rest参数 ,这个arguments
在你的情况下会使用arguments
variables。
看一个例子
function joinUrlElements(...args) { var re1 = new RegExp('^\\/|\\/$', 'g'); return args.map(function (element) { return element.replace(re1, ""); }).join('/'); } console.log(joinUrlElements('first', 'second', 'third'));
当你调用这个函数的时候,其中一个参数会导致数组的一个元素为“undefined”,当map试图对这个元素进行操作时,会抛出错误。