簡體   English   中英

Javascript方法和變量(初學者)

[英]Javascript methods and variables(beginner)

理解代碼時遇到嚴重問題。

function replace(str, before, after) {

    var rtt = before;
    var rt;

    if(before[0] === before[0].toUpperCase()) {
        var aa = after.split("");
        var u = after[0].toUpperCase();
        aa.splice(0,1,u);
        rt =  aa.join("");    
    }
    else {
       rt = after;
    }

    var r = str.split(" ");  
    var i = r.indexOf(rtt);
    r.splice(i,1, rt);
    var join = r.join(" ");
    return join;
}

replace("A quick brown fox jumped over the lazy dog", "jumped", "leaped");

我不明白為什么我不能在r.splice(i,1,rt)后再執行r.join(" ")然后返回r 為什么我必須聲明新的變量連接? 否則返回將不會返回正確的聲明。 但代碼是正確的。

根據MDN

splice()方法通過刪除現有元素和/或添加新元素來更改數組的內容。

這個方法返回什么?

包含已刪除元素的數組。 如果僅刪除一個元素,則返回一個元素的數組。 如果未刪除任何元素,則返回空數組。

至於這個問題

為什么我必須聲明新的變量連接?

實際上,您不必聲明新變量。 您只需返回此值即可

return r.join(" ");

 function replace(str, before, after) { var rtt = before; var rt; if(before[0] === before[0].toUpperCase()) { var aa = after.split(""); var u = after[0].toUpperCase(); aa.splice(0,1,u); rt = aa.join(""); } else { rt = after; } var r = str.split(" "); var i = r.indexOf(rtt); r.splice(i,1, rt); return r.join(" "); } var replaced = replace("A quick brown fox jumped over the lazy dog", "jumped", "leaped"); document.write(replaced); 

請注意, splice()方法會更改原始數組。

splice()方法向/從數組添加/刪除項,並返回已刪除的項。

現在,你可以簡單地繼續使用舊的變量,而不是一個新的var ,如果陣列中的代碼的適當時候仍然需要。

暫無
暫無

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

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