我正在尝试用另一个字符串替换一个字符串

I am trying to replace a string with another string

本文关键字:字符串 替换 一个 另一个      更新时间:2023-12-06

所以当我键入:时

function x(z) {
    if (z !== 'y') return ("There is an error!")
    z = z.replace(/y/g, 'Canada');
    return x(z);
}
x('y')

我收到make"有一个错误"。但我想让它说"加拿大"。

我的代码出了什么问题?

谢谢!

您在那里进行了不必要的recursive调用,

function x(z) {
  if (z !== 'y') return ("There is an error!")
  z = z.replace(/y/g, 'Canada');
  return z;
}

在您的环境中根本不需要这样做。

我想这就是你想要做的。

function x(z) {
    if (z !== 'y') return ("There is an error!")
    z = z.replace(/y/g, 'Canada');
    return z;
}
alert(x('y')); // Canada

因为z在第二次执行递归时已经被Canada替换。顺便说一句,在您的情况下使用regex是没有意义的。

function x(z) {
    if (z !== 'y') return ("There is an error!")
    z = z.replace('y', 'Canada');
}
x('y')

删除对x(z)的不必要调用。见下文

function x(z) {
    if (z !== 'y') return ("There is an error!");
    z = z.replace(/y/g, 'Canada');
    return z; // changed from return x(z), unnecessary recursion
}
console.log(x('y'));

该代码正是按照您的指示执行的。

如果var z不等于'y',则返回"存在错误!",否则调用值不等于'y'的同一函数。

然后调用带有"y"的函数。