Ich versuche hier mit meinem Code, was falsch zu verstehen:Switch-Anweisung nicht funktioniert wie erwartet
switch(arr){
case [0, 0]:
console.log("hereee")
return 0;
case [0, 1]:
return 1;
case [0, 2]:
return 2;
case [1, 0]:
return 3;
case [1, 1]:
return 4;
case [1, 2]:
return 5;
case [2, 0]:
return 6;
case [2, 1]:
return 7;
case [2, 2]:
return 8;
default:
console.log("but heree")
return -1;
}
Wie Sie sehen es Array prüft und sollte Nummer Rendite vorgesehen Array Werte zu verteidigen, zum Beispiel bei Ich gebe [1, 2] aus Ich erwarte, dass Ausgabe 5 ist, wenn ich [0, 0] übergebe, sollte es 0 sein, richtig? aber ich bekomme immer den Standardwert -1; Bitte hilf mir, den Grund dafür zu verstehen.
Hier ist eine gute Methode. Entsprechend dieser Antwort werden Arrays immer falsch zurückgeben. https://stackoverflow.com/questions/17818127/using-an-array-through-a-switch-statement-in-javascript – h01001000
weil das ist nicht, wie Sie Arrays vergleichen ... if ([0,0] == = [0,0]) würde nie funktionieren. Du wirst es neu überdenken müssen. – epascarello
In JS-Arrays werden durch Referenz nicht durch Werte verglichen daher '[]! == []' und '[1, 2]! == [1, 2]' –