簡體   English   中英

我正在嘗試用另一個字符串替換一個字符串

[英]I am trying to replace a string with another string

所以當我輸入:

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

刪除對 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'));

因為在第二次執行遞歸時z已經被Canada替換了。 順便說一句,在您的情況下使用正則表達式毫無意義。

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

該代碼完全按照您的要求執行。

你是說:返回“有一個錯誤!” 如果 var z 不等於 'y',否則使用不等於 'y' 的值調用相同的函數。

然后你用'y'調用函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM