【问题标题】:How can I remove the rest of the commas when the output is displayed?显示输出时如何删除其余的逗号?
【发布时间】:2020-02-21 12:35:56
【问题描述】:

我发现当使用带有子元素的数组或二维数组时,.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>

【问题讨论】:

    标签: javascript arrays comma


    【解决方案1】:

    在零之间有逗号的原因是因为你有一个二维数组并且内部数组正在被序列化(正在调用它们的 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>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-25
      • 1970-01-01
      • 2013-12-10
      相关资源
      最近更新 更多