no puedo resolver este problema
Publicado por bbroscheit (1 intervención) el 15/01/2022 22:18:38
me plantearon el siguiente problema
function mapear() {
// Escribi una funcion mapear en el prototipo del objeto global 'Array'
// que recibe una funcion callback , que se ejecuta por cada elemento del array
// mapear los elementos de ese array segun la funcion callback
// Esta funcion tiene que devolver un array nuevo con los elementos mapeados.
// NO USAR LA FUNCION MAP DE ARRAYS.
// ej:
// var numeros = [1, 2, 3, 4];
// numeros.mapear(function(numero) {
// return numero + 1;
// }) devuelve [2, 3, 4, 5]
// Tu código aca:
let newArray = [];
Array.prototype.mapear = function (e) {
for (let i = 0; i < e.length; i++) {
newArray[i] = e[i];
}
return newArray;
};
}
en el programa que corre el test en la consola da estos datos
describe('mapear', function() {
mapear();
const numbers = [1, 2, 3, 4];
it('should map', function() {
expect(numbers.mapear(n => n * 2)).toEqual([2, 4, 6, 8]);
})
it('should map ok', function() {
expect(numbers.mapear(n => n + 5)).toEqual([6, 7, 8, 9]);
})
})
el problema es que mi codigo devuelve el array que piden pero agrega un valor undefined en la ultima posicion.
si lo quiero quitar con el metodo que sea me devuelve un array vacio ademas del array del resultado
me esta volviendo loco.
desde ya muchas gracias
function mapear() {
// Escribi una funcion mapear en el prototipo del objeto global 'Array'
// que recibe una funcion callback , que se ejecuta por cada elemento del array
// mapear los elementos de ese array segun la funcion callback
// Esta funcion tiene que devolver un array nuevo con los elementos mapeados.
// NO USAR LA FUNCION MAP DE ARRAYS.
// ej:
// var numeros = [1, 2, 3, 4];
// numeros.mapear(function(numero) {
// return numero + 1;
// }) devuelve [2, 3, 4, 5]
// Tu código aca:
let newArray = [];
Array.prototype.mapear = function (e) {
for (let i = 0; i < e.length; i++) {
newArray[i] = e[i];
}
return newArray;
};
}
en el programa que corre el test en la consola da estos datos
describe('mapear', function() {
mapear();
const numbers = [1, 2, 3, 4];
it('should map', function() {
expect(numbers.mapear(n => n * 2)).toEqual([2, 4, 6, 8]);
})
it('should map ok', function() {
expect(numbers.mapear(n => n + 5)).toEqual([6, 7, 8, 9]);
})
})
el problema es que mi codigo devuelve el array que piden pero agrega un valor undefined en la ultima posicion.
si lo quiero quitar con el metodo que sea me devuelve un array vacio ademas del array del resultado
me esta volviendo loco.
desde ya muchas gracias
Valora esta pregunta


0