为什么忽略以下函数的参数
Why are the arguments of the following function being ignored?
我创建了一个函数来递归替换嵌套数组中的字符串:
function replaceString(tree, oldStr, newStr) {
for (var i = 0; i < tree.length; i++) {
if (Array.isArray(tree[i])) {
replaceString(tree[i])
} else {
tree[i] = tree[i].replace(oldStr, newStr)
}
}
}
function replaceQuotes(tree, callback) {
var oldStr = /"(?='b)/g
var newStr = '“'
replaceString(tree, oldStr, newStr)
callback(null, tree)
}
但是由于某种原因,这些论点没有得到认可,这很奇怪,因为如果我这样做:
tree[i] = tree[i].replace(regex, str).replace(/"(?='b)/g, '“')
在findLastString
功能中,工作正常。
可能是什么问题?
这是输入:
[ 'markdown',
[ 'para', '"a paragraph"' ],
[ 'hr' ],
[ 'para', '''another paragraph''' ],
[ 'bulletlist',
[ 'listitem', '"a list item"' ],
[ 'listitem', '"another list item"' ] ] ]
在递归调用中,您没有传递 2 个参数:
replaceString(tree[i])
应该是:
replaceString(tree[i], oldStr, newStr)
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- AngularJS:我可以跳过函数参数回调吗
- 为什么不'我们在javascript中使用函数参数的数据类型
- 使用闭包共享构造函数参数
- 函数参数的值错误
- 当一个重要的构造函数参数丢失时应该发生什么
- 阻止ReSharper将JavaScript函数参数放到新行中
- 根据函数参数将CSS值存储在var中,然后对其进行操作
- 使构造函数参数具有ES6类方法的特权
- 当客户端将两个按钮的javascript函数参数修改为相同时,SQL/PHP会更新多行
- Windows.Networking.EndpointPair构造函数参数
- 是否可以使用Sinon.JS检查函数参数绑定是否正确
- 大括号中的Javascript函数参数
- jQuery 无法使用 AJAX 调用访问函数内部的函数参数
- 将JSON字符串转换为函数参数
- eval()读取函数参数有多糟糕
- Javascript不能在一个命令中使用函数参数
- 函数参数在内部不可见,返回新的Promise(函数(resolve,reject).传递给被promise化的函数的
- ES6类构造函数参数
- 是否可以在javascript函数参数列表中调用多个函数