Tengo una condición como esta, quiero que la primera si es condicional no tenga reacción si vuelve a cumplir con esta condición la segunda vez que le dé una reacción, más o menos como el ejemplo en el código a continuación.
var x = -1; if( x < 0){ console.log("is okay") }if( x < 0 AGAIN ){ console.log("is not okay") }agregar una nueva variable puede resolverlo:
var x = -1; var isFirstTime = true; if( x < 0 && isFirstTime == true){ console.log("is okay"); isFirstTime = false; }if( x < 0 && isFirstTime == false){ console.log("is not okay"); }Use una variable de bandera e inicialícela con true , cuando encuentre el primer valor negativo (x < 0) imprima ok y establezca la bandera en false . La próxima vez que obtenga un valor negativo y la bandera sea false , not ok .
var x = -1; var firstTime = true; if( x < 0){ if (firstTime){ console.log("is okay"); firstTime = false; } else { console.log("is not okay") } }Aquí hay un ejemplo de prueba:
var firstTime = true; test_list = [1,-1,2,5,-1,6] for (let i in test_list){ x=test_list[i] console.log(x) if( x < 0){ if (firstTime){ console.log("is okay"); firstTime = false; } else { console.log("is not okay") } } }Producción:
1 -1 "is okay" 2 5 -1 "is not okay" 6