Avoid duplicate case labels
Cette page n'est pas encore disponible en français, sa traduction est en cours.
Si vous avez des questions ou des retours sur notre projet de traduction actuel,
n'hésitez pas à nous contacter.
ID: javascript-best-practices/no-duplicate-case
Language: JavaScript
Severity: Error
Category: Best Practices
Description
It is easy to copy and paste a switch statement case, and leave behind duplicated test cases.
Non-Compliant Code Examples
var a = 1; switch (a) {case 1: break; case 1: break; case 2: break; default: break;}
var a = '1'; switch (a) {case '1': break; case '1': break; case '2': break; default: break;}
var a = 1, one = 1; switch (a) {case one: break; case one: break; case 2: break; default: break;}
var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p1: break; default: break;}
var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true).p1: break; default: break;}
var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 1).p1: break; default: break;}
var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a === 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;}
var a = 1, f1 = function() { return { p1: 1 } }; switch (a) {case f1().p1: break; case f1().p1: break; default: break;}
var a = [1, 2]; switch(a.toString()){case ([1, 2]).toString():break; case ([1, 2]).toString():break; default:break;}
switch (a) { case a: case a: }
switch (a) { case a: break; case b: break; case a: break; case c: break; case a: break; }
var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a+1).p1: break; default: break;}
// limitations
var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p. p // comment
.p1: break; default: break;}
var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p .p
/* comment */
.p1: break; case p.p.p1: break; default: break;}
var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p .p
/* comment */
.p1: break; case p. p // comment
.p1: break; default: break;}
var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {
case p.p.p1: break; case p. p // comment
.p1: break; case p .p
/* comment */
.p1: break; default: break;}
var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(
a + 1 // comment
).p1: break; case f(a+1)
.p1: break; default: break;}
Compliant Code Examples
var a = 1; switch (a) {case 1: break; case 2: break; default: break;}
var a = 1; switch (a) {case 1: break; case '1': break; default: break;}
var a = 1; switch (a) {case 1: break; case true: break; default: break;}
var a = 1; switch (a) {default: break;}
var a = 1, p = {p: {p1: 1, p2: 1}}; switch (a) {case p.p.p1: break; case p.p.p2: break; default: break;}
var a = 1, f = function(b) { return b ? { p1: 1 } : { p1: 2 }; }; switch (a) {case f(true).p1: break; case f(true, false).p1: break; default: break;}
var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a + 1).p1: break; case f(a + 2).p1: break; default: break;}
var a = 1, f = function(s) { return { p1: s } }; switch (a) {case f(a == 1 ? 2 : 3).p1: break; case f(a === 1 ? 2 : 3).p1: break; default: break;}
var a = 1, f1 = function() { return { p1: 1 } }, f2 = function() { return { p1: 2 } }; switch (a) {case f1().p1: break; case f2().p1: break; default: break;}
var a = [1,2]; switch(a.toString()){case ([1,2]).toString():break; case ([1]).toString():break; default:break;}
switch(a) { case a: break; } switch(a) { case a: break; }
switch(a) { case toString: break;