在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 ] ]