在Javascript中将级别字符串转换为完全不同格式的数组

在Javascript中将级别字符串转换为完全不同格式的数组,javascript,arrays,string,Javascript,Arrays,String,我需要转换 [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

我需要转换

[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,4,]

我对Javascript还是很陌生,我正在尝试为我正在修改的游戏开发一个关卡编辑器。我无法更改关卡编辑器或实际游戏加载关卡的方式,因此我唯一的选择是转换格式。我真的不擅长解释我的代码,但是这个关卡是用关卡[x][y]在游戏中加载的,关卡是用数组中的数字表示的。我已经在这方面工作了好几天,所以任何帮助都将不胜感激。标高的宽度会有所不同,至少为20,但高度始终为15。两个级别都从0,0开始。谢谢你抽出时间

更新: 我需要这样做:

Array.prototype.chunk = function (chunkSize) {
  const chunkedArray = [];
  for (let i = 0; i < this.length; i += chunkSize) {
    chunkedArray.push(this.slice(i, i + chunkSize));
  }
  return chunkedArray;
};
皈依 “1,2,3,4,5,6,7,8,9”至 [1','4','7',],[2','5','8',[3','6','9']

显然它会比这更大 我也可以访问水平的宽度,并在代码中使用它,高度将始终为15

更新: 我想出来了。非常感谢你们的帮助。代码如下:

函数parselvlobjlvobj{ lvl=lvlObj.level.split','; lvlHeight=lvlObj.levelheight; lvlWidth=lvlObj.levelwidth; done1=[]; 变量i,j,temparray,chunk=lvlObj.levelwidth; k=0;
对于i=0,j=lvl.length;i您正在寻找的通常称为分块。不幸的是,Javascript中目前没有一个干净的分块器。我创建了一个简单的分块器,下面展示了如何实现这一点

变量级别=[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, ] 函数chunkarrayInput,chunkSize{ var outArray=[] 而不是长度{ outArray.pusharrayInput.0,chunkSize } 返回数组; } var chunkedLevel=chunklevel,30; console.logchunkedLevel您可以使用该方法执行以下操作:

Array.prototype.chunk = function (chunkSize) {
  const chunkedArray = [];
  for (let i = 0; i < this.length; i += chunkSize) {
    chunkedArray.push(this.slice(i, i + chunkSize));
  }
  return chunkedArray;
};
使用拆分、拼接和阵列。从将简化

常量块=str,大小=>{ 常量arr=str.split,; 从{length:Math.ceilarr.length/size}返回Array.from,2;,i=> arr.slicei*大小,i+1*大小 ; }; 常数str=1,2,3,4,5,6,7,8,9; console.logchunksstr,3;
console.logchunksstr,4;使用chunk\slice将导致数组大小错误,或者在加载到游戏中时缺少更好的术语。
const string = "0,1,2,3,4,5,6,7";
// Remove whitespaces and split on each ','
const array = string.replace(/ /g, '').split(',');
const chunked = array.chunk(2);
console.log(chunked);
// [ [ 0, 1 ], [ 2, 3 ], [ 4, 5 ], [ 6, 7 ] ]