Estoy tratando de hacer clic en un botón para alternar un valor dado de una matriz.
Así que aquí está la matriz con todos los valores:
values = ['one', 'two', 'three', 'four'];Aquí ejecuto el método toggleTest y paso el valor de cadena de 'uno'
<button (click)="toggleTest('one')"></button>Finalmente, aquí se debe eliminar o agregar el valor de la matriz de valores, dependiendo de si existe o no.
toggleTest(value) { // if value exists in this.values then remove it ... else add it. So I tried this: if (this.values.includes(value)) { // it's there so lets remove it this.values.splice(value, 1); } else { // its not there so lets add it this.values.push(value, 1); } }Cuando intento esto, elimina la primera entrada todo el tiempo e ignora el valor dado... simplemente elimina uno de la matriz de valores.
¿Cómo puedo arreglar esto?
El método splice() cambia el contenido de una matriz eliminando o reemplazando elementos existentes y/o agregando nuevos elementos en su lugar. Para acceder a parte de una matriz sin modificarla, consulte slice().
El método push() agrega uno o más elementos al final de una matriz y devuelve la nueva longitud de la matriz.
toggleTest(val){ if (this.values.includes(val)) { // it's there so lets remove it let index = this.values.indexOf(val); this.values.splice(index, 1); } else { // its not there so lets add it this.values.push(val); } }