No tienes acceso a esta clase

隆Contin煤a aprendiendo! 脷nete y comienza a potenciar tu carrera

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Aprende todo un fin de semana sin pagar una suscripci贸n 馃敟

Reg铆strate

Comienza en:

2D
4H
46M
2S

Playground: crea tu propia implementaci贸n de shift

8/29

Aportes 27

Preguntas 0

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad?

o inicia sesi贸n.

Hasta aqu铆 este curso ha sido s煤per genial para mi鈥
El poder construir un Array u objeto y poder manipularlo a partir de mis propios m茅todos, para modificar sus propiedades ha sido muy enriquecedor para mi. Con esto he logrado ser m谩s detallista de los pasos necesarios para lograr algo鈥 En fin, el poner en pr谩ctica la l贸gica para crear peque帽os algoritmos, haciendo uso de los ciclos y condicionales y entender la l贸gica detr谩s de los m茅todos, es lo que hace que este curso tenga un alto valor en aprendizaje significativo鈥 Excelente como siempre, la explicaci贸n de nuestro Prof. Diego, el Grande.

dejo mi solucion
*
*
*
*
*
*
*
*
*
*
*
*

 shift() {
        // Tu c贸digo aqu铆 馃憟
        if (this.length == 0) {
            return undefined;
        }

        //obtengo el primer elemento
        const firstItem = this.data[0];

        // corrijo el numero de indice de cada elemento
        for (let i = 0; i < this.length; i++) {
            this.data[i] = this.data[i + 1];
        }
        // remuevo el ultimo slot que queda con undefined
        delete this.data[this.length - 1];

        // corrijo el largo del array
        this.length--;
        
        return firstItem;
    }

Mi querido 鈥渁portazo!鈥 a la comunidad鈥 馃槂

shift() {
// Tu c贸digo aqu铆 馃憟
let first = this.data[0];
if (this.length === 0) {
return undefined;
} else {

for (let i = 0; i <= this.length - 1; i++) {
this.data[i] = this.data[i + 1]
}
delete this.data[this.length - 1];
this.length鈥
return first
}
}


.
.
.
.

  shift(){
    // Tu c贸digo aqu铆 馃憟
    if (this.length !== 0) {
      const firstItem = this.data[0];
      this.shiftIndex(0);

      return firstItem;
    } else {
      return undefined;
    }
  }
import { MyArray } from "./MyArray";

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  shift() {
    const firstItem = this.data[0];
    for (let i = 0; i < this.length - 1; i++) {
      this.data[i] = this.data[i + 1];
    }
    delete this.data[this.length - 1];
    this.length--;
    return firstItem;
  }
}

Soluci贸n.

import { MyArray } from "./MyArray";

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  shift(){
    // Tu c贸digo aqu铆 馃憟
    if (this.length === 0)
      return undefined;

    let first = this.data[0];
    for (let i = 0; i < this.length - 1; i++) {
      this.data[i] = this.data[i + 1];
    }
    delete this.data[this.length - 1];
    this.length--;
    
    return first;
  }
}

Hasta ac谩, excelente curso!!
Comparto mi soluci贸n.

shift() {
    // Tu c贸digo aqu铆 馃憟
    if (this.length === 0) return undefined;
    const item = this.data[0];
    for (let i = 0; i < this.length - 1; i++){
      this.data[i] = this.data[i + 1];
    }
    delete this.data[this.length - 1];
    this.length--;
    return item;
  }

.
.
.
.
.
.
.
.
.
.
.

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  pop() {
    const lastItem = this.data[this.length - 1];
    delete this.data[this.length - 1];
    this.length--;
    return lastItem;
  }
  
  shiftIndex(index) {
    for (let i = index; i < this.length - 1; i++) {
      this.data[i] = this.data[i + 1];
    }
    this.pop();
  }

  shift() {
    const firstItem = this.data[0];
    delete this.data[0];
    this.shiftIndex(0);
    return firstItem;
  }
}

Hola chicos, aqu铆 les dejo mi c贸digo pensado con programaci贸n funcional. Espero les sea de utilidad.

import { MyArray } from "./MyArray";

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  delete(index) {
    const item = this.data[index];
    this.shiftIndex(index);

    return item;
  }
  shiftIndex(index) {
    for (let i = index; i < this.length - 1; i++) {
      this.data[i] = this.data[i + 1];
    }
    delete this.data[this.length - 1];
    this.length--;
  }

  shift(){
    // Tu c贸digo aqu铆 馃憟
    if (this.length == 0) {
      return undefined
    } else {
      return this.delete(0);
    }
  }
}

hola que tal!
alguien me podria decir que esta mal? me retorna todo lo que me pide menos el object

shift(){
if (this.length === 0) {
return undefined
} else {
const firstitem = this.data[0]
delete this.data[0]
this.length鈥

   for (let i = 1; i < this.length; i++) {
    this.data[i] = this.data[i -1]
    delete this.data[this.length-1]
  }
return firstitem
}
//Mi soluci贸n :)
        shift(){
            const fisrtItem = this.data[0]
            for (let i = 0; i <= this.length -1; i++){
            this.data[i] = this.data[i + 1]
            }
            delete this.data[this.length -1];
            this.length--;
            return fisrtItem;   
        } 

En s铆 no es tan dificil si se hace uso de lo ya hecho antes. Porque shift se puede implementar con las funciones pop y shiftIndex:

export class MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  pop() {
    const item = this.data[this.length - 1];

    delete this.data[this.length - 1];
    this.length--;

    return item;
  }

  shiftIndex(index) {
    for (let i = index; i < this.length; i++) {
      this.data[i] = this.data[i + 1];
    }
  }

  shift() {
    if (!this.length) {
      return undefined;
    }
    const item = this.data[0];

    this.shiftIndex(0);
    this.pop();

    return item;
  }
}

Mi soluci贸n:
*
*
*
*
Alerta Spoiler!
*
*
*
*
*
*

shift() {
    if (this.length > 0) {
      const aEliminar = this.data[0];
      delete this.data[0];
      for (let i = 1; i < this.length; i++) {
        this.data[i - 1] = this.data[i]
      }
      delete this.data[this.length - 1];
      this.length--;
      return aEliminar;
    } else {
      return undefined;
    }
    
    
  }

mi solucion:

import { MyArray } from "./MyArray";

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  shift(){
    if (!this.data) return undefined;
    let item = this.data[0];
    const newList = {};
    for (let i = 0; i < this.length - 1; i++) {
      newList[i] = this.data[i + 1];
    }
    this.length--;
    this.data = newList;
    return item;
    
  }
}

la sol es estaa y solo esta:

shift(){
    let newdata = {};
    if (this.length == 0) {
      return undefined;
    }
    for (let i = 0; i < this.length; i++) {
      if (this.data[i + 1]) {
        newdata[i] = this.data[i + 1];
      }
    }
    const datatoreturn = this.data[0];

    this.data = newdata;
    this.length--;
    return datatoreturn;
  }

Comparto mi soluci贸n al reto鈥










import { MyArray } from "./MyArray";

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  shift(){
    // Tu c贸digo aqu铆 馃憟
    if (this.length > 0) {
      const element = this.data[0];
      for (let i = 0; i < this.length - 1; i++) {
        this.data[i] = this.data[i + 1];
      }
      delete this.data[this.length - 1];
      this.length--;
      return element;
    } else {
      return undefined;
    }
  }
}
shift() {
    const fisrtItem = this.data[0];
    delete this.data[0];

    for (let i = 0; i < this.length; i++) {
      this.data[i] = this.data[i + 1]
    }

    delete this.data[this.length];
    this.length--;

    return fisrtItem;
  }

Mi soluci贸n
*
*
*
*
*
*
*
*
*

  shift(){
    if (this.length === 0) {
      return undefined
    } else {
      
    let deleted = this.data[0];
    for (let i = 0; i < this.length; i++) {
      this.data[i] = this.data[i + 1]
    }
      delete this.data[this.length - 1]
    this.length--
    return deleted
    }
  }

mi aporte, sinceramente hasta ahora me vengo preguntando el por qu茅 del segundo delete pero asi funcion贸

shift(){
    const deleted = this.data[0]; 
    delete this.data[0];
    this.length--;
    for(let i = 0; i<this.length;i++){
        this.data[i]=this.data[i+1];
    }   
    delete this.data[this.length]
    return `El elemento borrado fue ${deleted}`;
    } 
    shift() {
        const firstItem = this.data[0];
        delete this.data[0];
        for(let i = 0; i < this.length - 1; i++) {
            this.data[i] = this.data[i+1];
        }
        delete this.data[this.length - 1];
        this.length--;
        return firstItem;
    }

Sin duda recorrer arrays al rev茅s como en el ejercicio anterior es mentalmente m谩s complicado para mi que hacia adelante. Quiz谩 sea bueno aprender otro idioma donde se lea rtl.

shift() {
    if (!this.length) return undefined;

    const item = this.data[0];

    for (let i = 0; i < this.length; i++) {
      this.data[i] = this.data[i + 1];
    }

    this.length--;
    return item;
  }

ez

  shift() {
    if (this.length) {
      const deleted = this.data[0];
      delete this.data[0];
      this.length--;

      if (this.length > 1) {
        for (let key in this.data) {
          this.data[key - 1] = this.data[key];
        }
        delete this.data[this.length];
      }

      return deleted;
    } else { return undefined }
  }

Les comparto mi solucion, con mucho cari帽o

<code> 
import { MyArray } from "./MyArray";

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  shift(){
    this.length === 0 && undefined
    const deletedElement = this.data[0]
    for (let i = 0; i <= this.length - 1; i++) {
      this.data[i] = this.data[i + 1]
    }
    delete this.data[this.length - 1]
    this.length--
    return deletedElement
    
  }
}

Mi soluci贸n al reto. Utilizo el
Object.keys(this.data)
en lugar del
this.length
porque es de las cosas que m谩s me cost贸 aprender al recorrer objetos, es m谩s una elecci贸n personal para tener presente eso y no olvidar c贸mo se hace

import { MyArray } from "./MyArray";

export class BetterArray extends MyArray {
  constructor(){
    super()
    this.length = 0
    this.data = {}
  }

  shift() {
    // Tu c贸digo aqu铆 馃憟
    let keys = Object.keys(this.data);
    let objectSize = keys.length;

    if (objectSize == 0) return undefined;

    let valueToShift = this.data[0];
    
    if (objectSize > 0) {
      for (let actualPosition = 0; actualPosition < objectSize; actualPosition++) {
        this.data[actualPosition] = this.data[actualPosition + 1];
      }
      delete this.data[objectSize - 1];
      this.length--;
    }
    return valueToShift;
  }
}


Mi soluci贸n:

shift(){
const item = this.data[0];
for (let i = 0; i < this.length - 1; i++) {
  this.data[i] = this.data[i + 1];
} delete this.data[this.length - 1];
this.length--;
return item;   

}

  shift() {
    if (this.length === 0)
      return undefined;

    const item = this.data[0];
    for (let i = 0; this.length >= i; i++) {
      this.data[i] = this.data[i + 1];
    }

    this.length--;
    return item;
  }

Hola. Les comparto mi soluci贸n a este reto. Si tienen alguna retroalimentaci贸n, es bienvenida. Gracias.

shift() {

        if (this.length !== 0) {
            
            const firstItem = this.data[0];

            for (let i = 0; i < this.length; i++) {
                this.data[i] = this.data[i + 1];
            }

            this.length--;
        
            return "First Item deleted: " + firstItem;
        }
        else {
            return "Array is empty";
        }

    }
undefined