# String interpolation - more Stackoverflow love

Continuing on my blog on useful gems of code from stackoverflow, is this  [beautiful function](https://stackoverflow.com/a/41015840)  which does string interpolation. I just renamed it and reproduced it here. 
```
const stringInterpolate = function(str, params) {
    const names = Object.keys(params);
    const vals = Object.values(params);
    return new Function(...names, `return \`${str}\`;`)(...vals);
}
```
Why do we need this when Javascript has  [template literals](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals). Template literals are useful only in literal context of code. What if we have a template string, which is used to display multiple rows of data, say an object array, or from a database fetch. It is good to have this method as part of your helper methods while displaying dynamic content. See example below

```
const db_data = [ 
                               { name: "David", age: 10 },
                               { name: "John", age: 20 },
                               { name: "Kate", age: 25 }
                             ]

const details_template = "Student ${name} aged ${age} years.";

for(const d of db_data) {
      console.log(stringInterpolate(details_template, d));
}

// Outputs the three lines 
// Student David aged 10 years.
// Student John aged 20 years.
// Student Kate aged 25 years.
```
      
