我创建了一个函数来递归替换嵌套数组中的字符串:
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
答案 0 :(得分:5)
在递归调用中,您没有传递2个参数:
replaceString(tree[i])
应该是:
replaceString(tree[i], oldStr, newStr)