首页 > 解决方案 > 如何在JS中的模板文字内传递字典

问题描述

如何在模板文字中传递整个字典?这是我的代码:

var pvtInPlan = treatmentPlan.pavementIDs;
var pcrAfterPlan = treatmentPlan.pavementCondition;
var yearlyPlan = {};
pvtInPlan.forEach((key, i) => yearlyPlan[key] = pcrAfterPlan[i]);  // I want to pass this yearlyPlan 

var arcadeExpression = `
                                    var plan = ${yearlyPlan};   
                                    var pvtID = 100;
                                    return plan[pvtID]`; // I want to be able to return such statement.

每当我使用 'var plan = ${yearlyPlan};' 行,它给我带来了错误。它在我使用 'var plan = ${yearlyPlan[100]};' 时有效 直接地。但是我需要从模板文字内部将索引传递给这个字典。

如果有人可以帮助我,我会很高兴。谢谢!

标签: javascriptarraystemplate-literals

解决方案


JSON.stringify如果你想转储整个内容,你可以做一个简单的事情,例如:

const yearlyPlan = JSON.stringify({ key1: 'content', key2: 'content2' })
const arcadeExpression = `
                                    var plan = ${yearlyPlan};   
                                    var pvtID = 100;
                                    return plan[pvtID]`; // I want to be able to return such statement.

console.log(arcadeExpression)
>>> 
"var plan = {"key1":"content","key2":"content2"};   
var pvtID = 100;
return plan[pvtID]"

如果您想要一个更定制的版本,那么您需要访问每个键值对来格式化消息。


推荐阅读