gpt4 book ai didi

javascript - 同时修改多个数组元素javascript

转载 作者:行者123 更新时间:2023-11-27 22:58:31 28 4
gpt4 key购买 nike

我正在用 JavaScript 制作一个简单的 Rogue 类游戏。我可以按程序生成 map ,没有任何问题,但是我正在寻找一种更符合人体工程学的方法来手动填充 map 数组。这是我正在谈论的内容的示例。

这有效。

//creating empty map array
city = new Array(1500);

//creating tile formats
tile1 = {walk: true, ...etc};
tile2 = {walk: false, ...etc};

//manually modifying array.
city[0] = tile1;
city[1] = tile1;
city[2] = tile1;

但是,由于其中一些 map 相当大,我希望能够一次修改多个元素。以下内容不起作用,但表达了我想做的事情。

city[0,1,2,3,7,8,9,10] = tile1;
city[4,5,6,11,12,13] = tile2;

我尝试了很多不同的方法,但没有一个成功。如果不使用比其值(value)更复杂的数学,我就无法使用 for 语句,因为我使用单个数组来表示 2d 空间,并且图 block 不是连续的。

有什么建议吗?

最佳答案

使用forEachES6 arrow function在最新的浏览器中

//creating empty map array
city = new Array(1500);

//creating tile formats
tile1 = {
walk: true
};
tile2 = {
walk: false
};

[0, 1, 2, 3, 7, 8, 9, 10].forEach(v => city[v] = tile1);
// older browser use [0, 1, 2, 3, 7, 8, 9, 10].forEach(function(v){ city[v] = tile1; });
[4, 5, 6, 11, 12, 13].forEach(v => city[v] = tile2);

console.log(city);

对于较旧的浏览器,请检查 polfill option of forEach method .

关于javascript - 同时修改多个数组元素javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37359139/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com