ReactJS - Interpretacion de notacion

 
Vista:
sin imagen de perfil

Interpretacion de notacion

Publicado por sebastian (1 intervención) el 30/08/2021 00:11:18
Hola, siguiendo el tutorial de ReactJS me encontré con el siguiente código, el cual no logro interpretar:

this.state = {
history: [
{
squares: Array(9).fill(null)
}
],
stepNumber: 0,
xIsNext: true
};

la propiedad history es un array de objetos squares ? el cual, a su vez, tambien es un array ?
lo cual me lleva a la confusión con lo siguiente que aparece:

const history = this.state.history.slice(0, this.state.stepNumber + 1);

entonces slice devuelve una porcion del array squares ?
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de 7aamin
Val: 9
Ha mantenido su posición en ReactJS (en relación al último mes)
Gráfica de ReactJS

Interpretacion de notacion

Publicado por 7aamin (26 intervenciones) el 10/10/2021 01:36:16
Hola, te lo explico de esta manera:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
let state = {
  history: [{squares: Array(9).fill(null)}],
  stepNumber: 0,
  xIsNext: true
};
 
//la propiedad history tiene un array y ese array tiene 1 elemento que es otro objrto JSON
//que contiene la propiedad squares
//El codigo de squares, Construye un Array de 9 elementos y lo llenara (fill) con "null"
console.log(state.history[0].squares)
//[null, null, null, null, null, null, null, null, null]
 
//Slice corta un array, recibe 2 parametros que son el inicio (0 que es el primer elemento) y
//state.stepNumber (que es 0 segun elvalor establecido en el state) y se le suma 1, dando como segundo parametro 1
//entonces quedaria state.history.slice(0, 1) -> quiere decir que solo tomara los elementos de las posiciones 0 a 1
//en este caso como solo hay un elemento, pues solo tomara ese.
//si tuvieramos una arr = ["pepe", "miguel", "andres"] y aplicamos arr.slice(0, 2) nos quedaria ["pepe", "miguel"]
//Se incluye el primero pero el segundo indice actua como cortante o como muro, por eso no se toma a "andres"
const history = state.history.slice(0, state.stepNumber + 1);
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar