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"
我有如下变量:
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"