When I do
const pFile = {'a': "b", 'c': 'd'}; var bigExplanation = ` lots of text here ${Object.keys(pFile).map(key => `${key}: ${pFile[key]}`)} more text here `; console.log(bigExplanation);
I get
lots of text here a: b,c: d more text here
where I was hoping for
lots of text here a: b c: d more text here
https://jsfiddle.net/ebvo23ks/
Question
Can anyone figure out what I am doing wrong?
Advertisement
Answer
You’ll need to add a newline (rn
) after each map()
iteration.
Use join()
on the map()
result;
const pFile = {'a': "b", 'c': 'd'}; var bigExplanation = ` lots of text here ${Object.keys(pFile).map(key => `${key}: ${pFile[key]}`).join("rn")} more text here `; console.log(bigExplanation);
Result;
lots of text here a: b c: d more text here
Edit; the source of the ,
was due your trying to ‘insert’ a object into a string, for example;
const pFile = {'a': "b", 'c': 'd'}; var bigExplanation = Object.keys(pFile).map(key => `${key}: ${pFile[key]}`); console.log(typeof bigExplanation); const string = '---' + bigExplanation + '----'; console.log(string);
Here you can see that (typeof bigExplanation)
is an javascript Object, when adding to a string, the ,
appear between each entry.