¿Cómo puedo configurar las ubicaciones en función de la tabla a continuación? Gracias
let initialState = {
board: [
[-1, 1, -1, 1, -1, 1, -1, 1],
[1, -1, 1, -1, 1, -1, 1, -1],
[-1, 1, -1, 1, -1, 1, -1, 1],
[0, -1, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, 0, -1, 0, -1, 0],
[2, -1, 2, -1, 2, -1, 2, -1],
[-1, 2, -1, 2, -1, 2, -1, 2],
[2, -1, 2, -1, 2, -1, 2, -1]
],
locations: calcLocations(self.board)
};
No reconoce self.board ...
3 respuestas
Use una nueva variable para contener el resultado intermedio:
let board = [ -1, 1, etc ];
let initialState = {
board: board,
locations: calcLocations( board )
};
Tiene que usar la palabra clave this
, y debe estar dentro del alcance {}
para que funcione.
let initialState = {
board: [
...
],
locations: function() {
return calcLocations(this.board);
}
};
Tenga en cuenta que para obtener las ubicaciones se convierte en una función: initialState.locations();
Como necesita usar this
, pero no quiere usar una función, puede usar un captador. En la primera llamada, el captador genera el valor y lo almacena en caché en this._locations
. A partir de ahora, el captador devolverá el valor almacenado en caché.
const calcLocations = JSON.stringify;
const initialState = {
board: [
[-1, 1, -1, 1, -1, 1, -1, 1],
[1, -1, 1, -1, 1, -1, 1, -1],
[-1, 1, -1, 1, -1, 1, -1, 1],
[0, -1, 0, -1, 0, -1, 0, -1],
[-1, 0, -1, 0, -1, 0, -1, 0],
[2, -1, 2, -1, 2, -1, 2, -1],
[-1, 2, -1, 2, -1, 2, -1, 2],
[2, -1, 2, -1, 2, -1, 2, -1]
],
get locations() {
if(!this._locations) this._locations = calcLocations(this.board);
return this._locations;
}
};
console.log(initialState.locations);
Preguntas relacionadas
Nuevas preguntas
javascript
Para preguntas sobre la programación en ECMAScript (JavaScript / JS) y sus diversos dialectos / implementaciones (excepto ActionScript). Incluya todas las etiquetas relevantes en su pregunta; por ejemplo, [node.js], [jquery], [json], etc.