爲這個愚蠢的問題道歉。我正試圖在Codewars上解決這個Kata,https://www.codewars.com/kata/the-enigma-machine-part-1-the-plugboard/train/javascript/。它基本上是一個Enigma機器的開始。我覺得我在這方面做了一些很好的進步。現在我通過pythontutor.com運行它,但是我不知道爲什麼當我運行這個時,for循環的第二次迭代將插件板的屬性「A」更改爲「C」,並且不是創建一個值爲'A'的新屬性'C'。我確信這是一個簡單的概念,我完全錯過了,但我肯定會對此有所瞭解。Javascript Object Key Value Confusion
class Plugboard {
constructor(wires) {
if(wires.length % 2 !== 0 || wires.length === 0 || wires.length > 20){
throw 'Error'
}
console.log(wires)
this.str = wires.split('')
for(var i = 0; i < this.str.length; i += 2){
if(this.hasOwnProperty(this.str[i])){
throw 'Duplicate';
}
this[this.str[i+1]] = this.str[i];
this[this.str[i]] = this.str[i+1];
}
}
process(chr){
if(!this.hasOwnProperty(chr)){
return chr
} else {
return this[chr];
}
}
}
var plugboard = new Plugboard("ABCA");
當我運行該代碼時,我得到''B「:」A「,」A「:」C「,」C「:」A「這是不正確的還是我錯過了什麼? – JohanP
引用你得到的實際輸出和你期望得到的輸出會好得多。 –
再次,對不起!期望的輸出是「B」:「A」; 「A」:「B」; 「C」:「A」; 「A」:「C」;. 我希望實現的是爲每對字符創建兩個鍵值對。例如,如果input =('XY'),預期的輸出this.X ='Y'; this.y ='X'。我知道有一些基本的東西我必須做錯。 –