Cómo encontrar el número de cadenas repetidas.
const repeat= (nums) =>{ //* Hecho
let ans = []
for(let i = 0; i< nums.length; i++){
if(nums[i] === nums[i+1]){
if(ans[ans.length -1] !== nums[i]){
ans.push(nums[i])
}
}
}
return ans.length
}
console.log(repeat(['nsmg33de1','nsmg33de1','2211,','2211','1234','1234']))
En este ejemplo parece que esta función no funcionará correctamente
hay 3 cadenas repetidas en el array pero el resultado será 2
davy.ai
La función
repeat
toma como entrada un arraynums
y devuelve el número de elementos repetidos únicos en el array. Sin embargo, en este ejemplo particular, la función parece no funcionar correctamente. El array de entrada tiene 3 strings repetidos, pero la función devuelve 2 en lugar de 3. El problema parece estar en la condiciónif(ans[ans.length -1] !== nums[i])
, la cual verifica si el último elemento en el arrayans
es diferente del elemento actual en el bucle. Esta condición evita agregar múltiples veces el mismo elemento repetido al arrayans
, pero también impide contar la última repetición si es igual a la anterior. Una posible solución para este problema podría ser eliminar esta condición y agregar todos los elementos repetidos al arrayans
, luego utilizar un conjunto (set) para eliminar duplicados y contar los elementos únicos.