Sobes.tech

Frontend

Si la función logHello está escrita como una función flecha y se llama a través de fn.call(this, ...args) dentro de runOnce, ¿qué pasará con el contexto this? ¿Qué se debe cambiar en la función logHello para que el contexto se pase correctamente?

233

Escriba una función para convertir una cadena de camelCase a snake_case. No se deben usar expresiones regulares, códigos de caracteres ni listas de símbolos codificados; la solución debe ser universal. Evalúe la complejidad temporal y espacial.

221

¿Por qué cuando se llaman a sleep(2000) y sleep(1000) en ese orden, primero se muestra el log de 1 segundo y luego el de 2? Explique cómo funciona el Event Loop, las microtareas y las macro tareas.

217

/* Tenemos un conjunto de billetes de la siguiente forma: [ { from: 'Londres', to: 'Moscú' }, { from: 'NY', to: 'Londres' }, { from: 'Moscú', to: 'San Petersburgo' }, ... ] De estos billetes se puede construir una única ruta continua. No hay ciclos ni repeticiones en la ruta. Se necesita escribir un programa que devuelva estos mismos objetos de billetes en el orden de la ruta. */ function getRoute(tickets = [], startCity) { // tu código aquí } console.clear() console.log(getRoute([ { from: 'Londres', to: 'Moscú' }, { from: 'NY', to: 'Londres' }, { from: 'Moscú', to: 'San Petersburgo' }, ], 'NY')); /* [ { from: 'NY', to: 'Londres' }, { from: 'Londres', to: 'Moscú' }, { from: 'Moscú', to: 'San Petersburgo' }, ] */

207

Conocimiento de bases de datos y trabajo con API

207

/** * La función `asyncAuth(callback)` acepta un callback, en el cual * puede pasarse un error (como primer argumento) y datos * del backend (como segundo argumento). * asyncAuth((error, data) => {}); * * Necesitas implementar la función `auth()`, * que llama a `asyncAuth()`, pero devuelve una Promesa. * * @returns {Promise} */ function auth() { // asyncAuth((error, data) => {}); } /** * La función `tryAuth()` usa `auth()` y, en caso de error, * realiza N intentos adicionales. * Si todos los intentos fallan, devuelve el último error. * * @returns {Promise} */ function tryAuth(n) { }

200

¿En qué más ha tenido que escribir en su experiencia comercial, además de TypeScript y JavaScript?

189

/** * La función 'asyncAuth(callback)' recibe un callback, en el que puede * pasarse un error (como primer argumento) y datos * del backend (como segundo argumento). * asyncAuth((error, data) => {}); * * Debes implementar la función 'auth()', * que llama a 'asyncAuth()', pero devuelve una Promesa. * * @returns {Promise} */ function auth() { return new Promise((resolve, reject) => { asyncAuth((error, data) => { if (error) { reject(error) } else { resolve(data) } }); }) } /** * La función 'tryAuth()' usa 'auth()' y, en caso de error, * realiza N intentos adicionales. * Si todos los intentos fallan, devuelve el último error. * * @returns {Promise} */ function tryAuth(n) { return new Promise((resolve, reject) => { function attempt(attemptsLeft) { auth().then(resolve).catch((error) => { if (attemptsLeft <= 0) { // Se acabaron los intentos — lanzamos el último error reject(error); } else { // Aún quedan intentos — llamamos recursivamente con n - 1 attempt(attemptsLeft - 1); } }); } attempt(n); }); }

189

¿Qué debemos agregar al método times si necesitamos tener en cuenta números fraccionarios?

183

/* Se necesita escribir un polyfill para Array.prototype.some Parámetros - callback - función que verifica cada elemento, acepta tres argumentos: - element - El elemento actual que se está procesando en el array. - index (Opcional) - El índice del elemento actual que se está procesando. - array (Opcional) - El array sobre el cual se realiza la iteración. - thisArg (Opcional) - Valor que se usa como this cuando se ejecuta la función callback. Valor de retorno true, si la función de verificación devuelve un valor truthy para al menos un elemento del array. De lo contrario, false. */ Array.prototype.some = function (callback, thisArgs) { const array = this; for (let i = 0; i < array.length; i++) { if (!(i in array)) continue; const result = callback.call(thisArgs, array[i], i, array); if (result) return true; } return false; }

181

¿En qué equipo trabajas y en qué proyecto?

174

¿Se puede resolver una tarea de suma de promesas sin usar métodos estáticos de Promise? ¿En qué se diferenciará la ejecución de promesas dentro de un ciclo respecto a Promise.all: en paralelo o en serie?

170

Implementar un decorador callLimit(fn, limit, callback), que limite el número de llamadas a una función. Toma: una función para decorar, el número máximo de llamadas, un callback, que se llama en la última llamada (opcional). La función devuelta debe tener un método reset para reiniciar el contador a su estado inicial.

163

Hay un árbol en el que se sientan ardillas y cuervos. Es necesario escribir una función que encuentre todas las ardillas en el árbol y devuelva sus nombres. Resultado esperado: ['Acorn', 'Sirsalty', 'Macadamia', 'Kernel'].

162

Determine el orden de salida en la consola y los valores del tiempo medido en el ejemplo con sleep, temporizadores, Promise y colas de tareas; explique por qué la demora real puede ser mayor que la establecida.

161

¿Qué es preferible usar para almacenar datos por clave: Map o un objeto normal? ¿Cuáles son las ventajas de Map?

160

/** * Es necesario escribir una función asíncrona, * que "duerma" la cantidad de milisegundos especificada, * y luego termine con éxito */ function sleep(duration) { } // Ejemplo const startTime = Date.now(); console.log("Comenzando a dormir..."); sleep(2000).then(() => { console.log("¡Desperté después de 2 segundos!"); console.log("Tiempo transcurrido: ", Date.now() - startTime); }); sleep(1000).then(() => { console.log("¡Desperté después de 1 segundo!"); console.log("Tiempo transcurrido: ", Date.now() - startTime); });

157

Amplíe Array.prototype con un método que agrupa los elementos del array por una clave calculada mediante una función pasada, y devuelve un objeto donde cada clave corresponde a un array de elementos. Explique qué sucederá si la función de cálculo de la clave devuelve algo que no sea una cadena o un número.

155

¿Qué te gusta y qué no te gusta en tu trabajo en la empresa?

154

// Se te da una cadena que consiste en letras latinas, espacios y signos de puntuación. // Se llama pangrama a una cadena si contiene al menos una vez cada una de las 26 letras. Determina si la cadena es un pangrama. const LETTERS = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']; function isPangram(text) { // tu código aquí } console.log(isPangram(`A pangram or holoalphabetic sentence is a using every letter of a given alphabet at least once.`)); // => console.log(isPangram('Waltz, bad nymph, for quick jigs vex.'))

153
/6