2017-06-02 4 views
0

ive vereinfacht den Code viel einfacher, aber ich mache ein Spiel auf einem Gitter, das die Spieler Spielsteine ​​verfolgt.Wenn ein Array ändert, schieben Sie es in ein Array-History-Array

Wenn es ein 9x9 Gitter ist, wird das Array 9 Indizes haben, von denen jeder 9 Index enthält, so dass ich auf einen Punkt im Gitter als Array [x] [y] verweisen kann. Jede Runde möchte ich diese Platzierung in einem Grid-History-Array speichern.

Ich habe versucht, array.push jedes Mal zu verwenden, aber nach 1 Umdrehung, wenn ich die Geschichte anzeigen, sind alle Gitter die gleichen wie die aktuelle. Ich habe eine einfache jsfiddle zu demonstrieren - https://jsfiddle.net/3rmwnuv5/

-Code unten auch hier:

var stones = [['clear', 'clear', 'clear'], ['clear', 'clear', 'clear'], ['clear', 'clear', 'clear']] 

    var stoneHistory = []; 

    stoneHistory.push(stones); 

    stones[1][1] = 'black'; 

    stoneHistory.push(stones); 

    stones[0][2] = 'white'; 

    stoneHistory.push(stones); 

    console.log(stoneHistory); 

Antwort

0

Also schaute ich auf, wie tief ein Array zu tun und tat es durch json wie unten stringify.

var stones = [['clear', 'clear', 'clear'], ['clear', 'clear', 'clear'], ['clear', 'clear', 'clear']] 

    var stoneHistory = []; 

    var copy = JSON.parse(JSON.stringify(stones)); 
    stoneHistory.push(copy); 

    stones[1][1] = 'black'; 

    var copy = JSON.parse(JSON.stringify(stones)); 
    stoneHistory.push(copy); 

    stones[0][2] = 'white'; 

    var copy = JSON.parse(JSON.stringify(stones)); 
    stoneHistory.push(copy); 

    console.log(stoneHistory); 
0

var stones = [['clear', 'clear', 'clear'], ['clear', 'clear', 'clear'], ['clear', 'clear', 'clear']] 
 

 
    var stoneHistory = []; 
 

 
    var val1 = JSON.parse(JSON.stringify(stones)); 
 
    stoneHistory.push(val1); 
 

 
    stones[1][1] = 'black'; 
 

 
    var val2 = JSON.parse(JSON.stringify(stones)); 
 
    stoneHistory.push(val2); 
 

 
    stones[0][2] = 'white'; 
 

 
console.log(stoneHistory);

Verwandte Themen