同时修改多个数组元素javascript

时间:2016-05-21 05:11:08

标签: javascript arrays

我在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不是顺序的。

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

在最新浏览器中使用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