Si doy un valor a firstParam como 'Diez' o '10', ¿hay alguna forma de que el programa devuelva un valor numérico a la función?
const sum = (firstParam, secondParam) => { if (firstParam === Number(firstParam) && secondParam === Number(secondParam)) return (firstParam - secondParam) else return ('Invalid argument(s)') } console.log(sum(1,1))EDITAR
He intentado muchas formas diferentes de cambiar el firstParam a Number.firstParam, cuando me acerco me pierdo las declaraciones de devolución correctas
const sum = (firstParam, secondParam) =>{ firstParam = Number.firstParam if (firstParam === Number(firstParam) && secondParam === Number(secondParam) ) return (firstParam - secondParam); else return ('Invalid argument(s)') } console.log(sum(1,1))Si proporciona un número en forma de cadena. por ejemplo '10'.
Puede analizarlo en Number y luego devolver la sum como se muestra a continuación.
Ejemplo cuando ambos argumentos son correct .
const sum = (firstParam, secondParam) =>{ let sum = Number(firstParam)+Number(secondParam); return Number(sum)?sum:"Invalid argument(s)"; } console.log(sum('10','1')) Ejemplo cuando alguno de los argumentos es incorrect .
const sum = (firstParam, secondParam) =>{ let sum = Number(firstParam)+Number(secondParam); return Number(sum)?sum:"Invalid argument(s)"; } console.log(sum('ten','1'))Debe verificar el tipo de argumentos antes de intentar convertirlos en un número:
const sum = (firstParam, secondParam) => { // If both are numbers everything is ok if (typeof firstParam === 'number' && typeof secondParam === 'number' ) { return (firstParam - secondParam); } // If are stingified numebrs we convert them const firstParamInNumber = parseFloat(firstParam) const secondParamInNumber = parseFloat(secondParam) return isNaN(firstParamInNumber) || isNaN(secondParamInNumber) ? 'Invalid argument(s)' : firstParamInNumber - secondParamInNumber } console.log(sum(1,'1')) console.log(sum(1,1)) console.log(sum(1,'wrong param'))