可以使用模板字符串作为对象值吗?
Can you use template strings as an object value?
有没有办法创建模板字符串的散列?
类似于:
const myStrings = {
a: `myStringA${test}`,
b: `myStringB${test}`
}
然后在其他地方,你可以做类似的事情:getString(index, test)
,它可以索引到对象中。我知道以上是错误的,但只是想举例说明我的想法。例如,getString(a, "Cat")
将 return:myStringACat
对于您的用例,我会看到以下内容:
var myStrings = {
a: "myStringA${test}",
b: "Name: ${name}, Id: ${id}",
getString: function(index, o) {
var string = this[index];
Object.keys(o).forEach(function(key) {
if (string.indexOf("${" + key + "}")) {
string = string.replace("${" + key + "}", o[key]);
}
});
return string;
},
};
console.log(
myStrings.getString("a", {test: "Cat"}),
" ",
myStrings.getString("b", {name: "Arber", id: 123})
);
// "myStringACat"
// "Name: Arber, Id: 123"
有没有办法创建模板字符串的散列?
类似于:
const myStrings = {
a: `myStringA${test}`,
b: `myStringB${test}`
}
然后在其他地方,你可以做类似的事情:getString(index, test)
,它可以索引到对象中。我知道以上是错误的,但只是想举例说明我的想法。例如,getString(a, "Cat")
将 return:myStringACat
对于您的用例,我会看到以下内容:
var myStrings = {
a: "myStringA${test}",
b: "Name: ${name}, Id: ${id}",
getString: function(index, o) {
var string = this[index];
Object.keys(o).forEach(function(key) {
if (string.indexOf("${" + key + "}")) {
string = string.replace("${" + key + "}", o[key]);
}
});
return string;
},
};
console.log(
myStrings.getString("a", {test: "Cat"}),
" ",
myStrings.getString("b", {name: "Arber", id: 123})
);
// "myStringACat"
// "Name: Arber, Id: 123"