为什么我的国际象棋桌在填充之前没有重置?

问题描述 投票:0回答:1

我正在制作一款国际象棋游戏,我从一个初始棋盘开始。我有一个基于 FEN 的位置更改功能。但是,当我想在添加新方块之前更新棋盘并重置时,它不会重置。

const board = () => {
    let squares = [];

    const setBoard = fen => {
        squares = [];
        //populating squares logic
    };

    return { squares, setBoard };
};
javascript closures
1个回答
0
投票

该函数返回对

squares
变量中数组的引用。通过更改函数中变量的值,您不会更改传递的值。

要清除变量中的数组,请使用

array.length = 0

由于变量的值不应更改,因此使用

const

const board = () => {
    const squares = []; // use 'const'

    const setBoard = fen => {
        squares.length = 0; // clear squares
        //populating squares logic
    };

    return { squares, setBoard };
};
© www.soinside.com 2019 - 2024. All rights reserved.