Console.log преобразовывает массив в значение, разделенное запятыми - PullRequest
0 голосов
/ 07 декабря 2018

Test-1

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

O / P => это утверждение 1,2,3

Test-2

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

O / P => это утверждение 1,2,3

Test-3

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

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

In test-1 и test-2 ожидаемое значение O / P должно быть следующим: [1,2,3]

Итак, почему это происходит?Я не понимаю сценарий.

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

В тесте 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(','));

Но в тесте 3 вы не console.log набираете строку - вы console.log ging для array , поэтому в консоли вы увидите [ и ] s, указывающие, что регистрируемый элемент является массивом.

0 голосов
/ 07 декабря 2018

В тестах 1 и 2 ваш массив преобразуется в строку:

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