代码之家  ›  专栏  ›  技术社区  ›  Harsh Patel Sam

Console.log将数组转换为逗号分隔的值

  •  0
  • Harsh Patel Sam  · 技术社区  · 6 年前

    测试-1

    let myArray = [1,2,3]
    function arrayCounter (array1) {
        console.log(`this is statement ${array1}`);
    }
    arrayCounter(myArray)
    

    测试-2

    let myArray = [1,2,3]
    function arrayCounter2 (array1) {
        console.log("this is statement " + array1);
    }
    arrayCounter2(myArray)
    

    O/P=>这是报表1,2,3

    测试-3

    let myArray = [1,2,3]
    console.log(myArray)
    

    O/P=>[1,2,3]

    测试-1 测试-2 预期O/P应为本is报表[1,2,3]

    那么,为什么会发生这种情况?我不明白有什么情况。

    2 回复  |  直到 6 年前
        1
  •  2
  •   CertainPerformance    6 年前

    在测试1和测试2中,您使用字符串连接数组,这将导致 Array.prototype.valueOf 正在调用,返回由逗号连接的数组项,或 myArray.join(',') 因此:

    console.log(`this is statement ${array1}`);
    

    console.log("this is statement " + array1);
    

    这和

    console.log("this is statement " + array1.join(','));
    

    console.log 系一根绳子-你是 console.log 静安 大堆 ,因此在控制台中,您将看到 [ ] s表示正在记录的项是一个数组。

        2
  •  1
  •   Kokogino    6 年前

    在测试1&2、您的数组已转换为字符串:

    let myArray = [1,2,3]
    console.log('' + myArray)