显示输出时如何删除其余的逗号?
How can I remove the rest of the commas when the output is displayed?
我发现当使用带有子元素的数组或类似于二维数组时,.join 函数仅在从数组的顶部元素显示时删除逗号。
如何在显示数组时删除所有逗号?
我使用了 "\n"
,它非常适合我想要的,但对于其余部分,我不想要任何逗号,所以我想用 ""
.
替换它们
function gameloop(){
var mainArray = [];
var mapSizeX = 10;
var mapSizeY = 10;
function nl(){topbody.innerText += "\n";}
function fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY){
for (var i = 0; i < mapSizeX; i++) {
mainArray.push([0])
for (var j = 0; j < mapSizeY; j++) {
mainArray[i][j] = 0;
}
}
}
fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY);
topbody.innerText += mainArray.join("\n");
}
gameloop();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello</title>
</head>
<body>
<section id="topbody"></section>
<script src="main.js"></script>
</body>
</html>
你在零之间有逗号的原因是因为你有一个二维数组并且正在序列化内部数组(正在调用它们的 toString()
方法)。当数组被序列化时,它们的元素用逗号分隔。请参阅下面的示例来证明这一点:
console.log([1, 2, 3].toString())
// calls toString() behind the scenes
document.body.innerHTML = "serialised value: " + [1, 2, 3]
要删除逗号,映射数组并用空字符串连接每个内部数组的元素。然后用换行符加入该地图的结果。像这样:
const mainArray = [[1,2,3], [4,5,6]]
const text = mainArray
.map(arr => arr.join(""))
.join("\n")
document.body.innerText = text
完整示例:
function gameloop(){
var mainArray = [];
var mapSizeX = 10;
var mapSizeY = 10;
function nl(){topbody.innerText += "\n";}
function fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY){
for (var i = 0; i < mapSizeX; i++) {
mainArray.push([0])
for (var j = 0; j < mapSizeY; j++) {
mainArray[i][j] = 0;
}
}
}
fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY);
topbody.innerText += mainArray.map(arr => arr.join("")).join("\n");
}
gameloop();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello</title>
</head>
<body>
<section id="topbody"></section>
<script src="main.js"></script>
</body>
</html>
我发现当使用带有子元素的数组或类似于二维数组时,.join 函数仅在从数组的顶部元素显示时删除逗号。
如何在显示数组时删除所有逗号?
我使用了 "\n"
,它非常适合我想要的,但对于其余部分,我不想要任何逗号,所以我想用 ""
.
function gameloop(){
var mainArray = [];
var mapSizeX = 10;
var mapSizeY = 10;
function nl(){topbody.innerText += "\n";}
function fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY){
for (var i = 0; i < mapSizeX; i++) {
mainArray.push([0])
for (var j = 0; j < mapSizeY; j++) {
mainArray[i][j] = 0;
}
}
}
fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY);
topbody.innerText += mainArray.join("\n");
}
gameloop();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello</title>
</head>
<body>
<section id="topbody"></section>
<script src="main.js"></script>
</body>
</html>
你在零之间有逗号的原因是因为你有一个二维数组并且正在序列化内部数组(正在调用它们的 toString()
方法)。当数组被序列化时,它们的元素用逗号分隔。请参阅下面的示例来证明这一点:
console.log([1, 2, 3].toString())
// calls toString() behind the scenes
document.body.innerHTML = "serialised value: " + [1, 2, 3]
要删除逗号,映射数组并用空字符串连接每个内部数组的元素。然后用换行符加入该地图的结果。像这样:
const mainArray = [[1,2,3], [4,5,6]]
const text = mainArray
.map(arr => arr.join(""))
.join("\n")
document.body.innerText = text
完整示例:
function gameloop(){
var mainArray = [];
var mapSizeX = 10;
var mapSizeY = 10;
function nl(){topbody.innerText += "\n";}
function fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY){
for (var i = 0; i < mapSizeX; i++) {
mainArray.push([0])
for (var j = 0; j < mapSizeY; j++) {
mainArray[i][j] = 0;
}
}
}
fill2DimensionsmainArrayay(mainArray, mapSizeX, mapSizeY);
topbody.innerText += mainArray.map(arr => arr.join("")).join("\n");
}
gameloop();
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Hello</title>
</head>
<body>
<section id="topbody"></section>
<script src="main.js"></script>
</body>
</html>