輸入: ["doc", "doc", "image", "doc(1)", "doc"]
輸出: ["doc", "doc(1)", "image", "doc(1)(1)", "doc(2)"]
問題:
{used[name] } 這部分代碼在欺騙我。
我不明白 line 以及我如何不將 1 分配給第一件事
通過反復試驗,代碼按照應有的方式作業;但我很難把我的大腦圍繞在這個回圈中。
我的理解:
我們遍歷名稱,然后是每個以 docs 開頭的名稱;我們將 newName 分配給 doc1
我試過的:
used[newName] = 6;
結果:[檔案、檔案(6)、影像、檔案(1)、檔案(7)]
這最終讓我更加困惑。很晚了,我可能只需要睡一會兒。
const solution = names => {
const used = {};
return names.map(name => {
let newName = name;
while (used[newName]) {
newName = `${name}(${used[name] })`;
}
used[newName] = 1;
return newName;
});
};
uj5u.com熱心網友回復:
第一次遇到的名稱used[newName]是undefined,這樣的while回圈不會甚至開始,并newName回傳。在下一次遇到它時,您已經有了user[newName]=1,因此(1)附加到名稱,依此類推。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/390124.html
標籤:javascript 目的 while 循环 增量
下一篇:自定義python包中物件的范圍
