-1

I want to pass Array of string values to a string literal as follows

Code :

var array = ['1','2556','3','4','5'];
...
...

var output = `
<scr`+`ipt>
    window.stringArray = [`+ array +`]
</scr`+`ipt>

`

Output :

<script>
    window.stringArray = [1,2556,3,4,5]
</script>

Desired Output:

<script>
    window.stringArray = ['1','2556','3','4','5']
</script>

I've tried to not string the arrays and string it inside the multiline string, but the values are too long for int to handle and it breaks e.g. [888555985744859665555] this will turn into [888555985744859665500] and it's a push on the memory, easy to use string regardless! Next I've tried to use map function within the inline string like this

`[`+ array.map(String) +`]`

I can't add any more lines to the output string mentioned above, code can be modified within the one line or added above it!

baxsm
  • 56
  • 8

2 Answers2

1

You can stringify the array. In addition just escape the / instead of using concatenation on the tag name - it's easier to read, and more efficient.

const array = ['1','2556','3','4','5'];

const output = `
  <script>
    window.stringArray = ${JSON.stringify(array)}
  <\/script>
`;

console.log(output);
Andy
  • 61,948
  • 13
  • 68
  • 95
0

Why not use JSON.stringify? It works perfectly for your use case!

var array = ['1','2556','3','4','5'];

var output = `
<scr`+`ipt>
    window.stringArray = `+ JSON.stringify(array) +`;
</scr`+`ipt>

`;

console.log(output);

You can read more about the usage of JSON.stringify on MDN.

Lakshya Raj
  • 1,669
  • 3
  • 10
  • 34