Javascript 用对象解构替换

Javascript Replacement With Object Destructuring

我有如下变量:

var temp = 'Hello world {variable1}. It is just a {variable2}';

我有一个如下所示的对象:

var object = {variable1: 12, variable2: 15, variable3: 20 ...};

因此,我想用对象变量替换临时数据。 temp.replace(对象...)

可以通过

解决
Object.keys(object).forEach(o => temp.replace(o, object[o])); 

有没有更实用的方法?

你可以拿一个函数来替换,交出取值的key

var temp = 'Hello world {variable1}. It is just a {variable2}',
    object = { variable1: 12, variable2: 15, variable3: 20 },
    rendered = temp.replace(/\{([^\}]+)\}/g, (_, k) => object[k]);

console.log(rendered);

String.prototype.replace 可以用函数替换匹配项。你可以用这个替换所有 {...} 例如:

temp.replace(/\{([^}]+)\}/g, (_, match) => object[match]);

您可能只想匹配字符 类,不允许 { with spaces or *strange* things_here! }(但 JS 可以允许任何类型的字符串)

取决于您的变量 temp 是否始终具有动态数字 variables 以及您是否试图获取对象中的所有值。

如果你知道 object

中的确切内容,你可以使用解构和字符串文字来做这样的事情
const {variable1, variable2, variable3} = object
var temp = `Hello world ${variable1}. It is just a ${variable2}.`

console.log(temp) \ "Hello world 12. It is just a 15"