10

In JS, if I log a string to the console it is not showing properly ?

console.log(uniqueProducts); //
console.log("uniqueProducts:"+uniqueProducts);

result

[ { country: 'Russia', launches: 32 },
  { country: 'US', launches: 23 },
  { country: 'China', launches: 16 } ]
uniqueProducts:[object Object],[object Object],[object Object]
map

So why is [object Object] shown instead of the value? It is like it changes type with string appended?

soundslikeodd
  • 1,097
  • 2
  • 24
  • 30
manuelBetancurt
  • 14,346
  • 29
  • 109
  • 206
  • 2
    You are concatenating an object to string – Eddie Dec 16 '17 at 04:58
  • 1
    And concatenating any to a string converts that into a string. An Object when converted to a string is `[object Object]`, so you first have to parse the object itself, – Deepak Kamat Dec 16 '17 at 05:01
  • Related: [How can I display a JavaScript object?](https://stackoverflow.com/q/957537) – VLAZ Mar 01 '21 at 06:59

3 Answers3

20

You are concatenating an object to string

You can console a string and an object by separating it by comma(,)

you can console.log("uniqueProducts:", uniqueProducts );

Eddie
  • 26,040
  • 6
  • 32
  • 55
8

You are trying to concatenate an object with a string. You can fix it one of two ways:

  1. Remove + from the log call:
console.log("uniqueProducts:", uniqueProducts);
  1. You can use JSON.stringify to print the object as JSON:
console.log("uniqueProducts:", JSON.stringify(uniqueProducts));
kjones
  • 1,199
  • 1
  • 11
  • 26
Sajeetharan
  • 203,447
  • 57
  • 330
  • 376
4

+ concatenates strings but object is not a string.

Use console.dir(obj) to display the content of the object.

MJ Montes
  • 2,968
  • 1
  • 15
  • 21