我在JavaScript中制作一个像游戏一样简单的流氓。我可以在程序上生成一个没有任何问题的地图,但是我正在寻找一种更符合人体工程学的手动填充地图数组的方法。这是我正在谈论的一个例子。
这很有效。
//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;
但是,由于其中一些地图会相当大,我希望能够同时修改多个元素。以下内容不起作用,但表达了我想做的事情。
city[0,1,2,3,7,8,9,10] = tile1;
city[4,5,6,11,12,13] = tile2;
我尝试了很多不同的方法,但是没有成功。我不能使用for语句而不使用比它更值复杂的数学,因为我使用单个数组来表示2d空间,并且tile不是顺序的。
有什么建议吗?
答案 0 :(得分:1)
在最新浏览器中使用forEach和ES6 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。