Estoy usando el método de empalme para eliminar un subarreglo de un arreglo con el siguiente código:
for(let i = 0; i < cid.length; i++) { if(coinsValue[cid[i][0]] < troco && cid[i][1] > 0) available += cid[i][1] if(coinsValue[cid[i][0]] > troco) cid[i].splice(0) }La salida es:
[ [ 'PENNY', 1.01 ], [ 'NICKEL', 2.05 ], [ 'DIME', 3.1 ], [ 'QUARTER', 4.25 ], [ 'ONE', 90 ], [ 'FIVE', 55 ], [ 'TEN', 20 ], [ 'TWENTY', 60 ], [] /// removed elements from this array, but not the array itself ]Como puede ver, los elementos que se ajustan a la condición se eliminan y todavía me queda una matriz vacía. ¡Sin embargo, quiero eliminarlo por completo!
¿Alguna ayuda?
Está eliminando elementos de una submatriz, no de la propia matriz.
Para eliminar un elemento de la matriz superior, debe hacer lo siguiente:
cid.splice(i, 1) en lugar de cid[i].splice(0)
for(let i = 0; i < cid.length; i++) { if (coinsValue[cid[i][0]] < troco && cid[i][1] > 0) { available += cid[i][1]; } else if (coinsValue[cid[i][0]] > troco) { cid.splice(i, 1); } }