如何在Javascript中使用循环和控制语句进行高级字符串模板化

如何在Javascript中使用循环和控制语句进行高级字符串模板化,javascript,npm,Javascript,Npm,基本上在运行时,我得到如下数组 var colors = ['red', 'green', 'blue']; { "color" : { "name" : "foo", "properties" : { ... } }, "green" : { "name" : "foo", "properties" : { ... }

基本上在运行时,我得到如下数组

var colors = ['red', 'green', 'blue'];
{
    "color" : {
        "name" : "foo",
        "properties" : {
            ...
        }
    },
    "green" : {
        "name" : "foo",
        "properties" : {
            ...
        }
    },
    "blue" : {
        "name" : "foo",
        "properties" : {
            ...
        }
    }
}
我需要构建一个JSON字符串,如下所示

var colors = ['red', 'green', 'blue'];
{
    "color" : {
        "name" : "foo",
        "properties" : {
            ...
        }
    },
    "green" : {
        "name" : "foo",
        "properties" : {
            ...
        }
    },
    "blue" : {
        "name" : "foo",
        "properties" : {
            ...
        }
    }
}

是否有任何字符串模板框架支持循环和控制语句来构建如上所述的JSON字符串

您可以尝试使用Nunjucks包。它支持javascript和npm库。 模板可以声明如下(命名为colors.template):

您可以按如下方式解析json模板:

var nunjucks = require('nunjucks');
nunjucks.configure({ autoescape: true });
var output = nunjucks.render('colors.template', {colors : ['red', 'green', 'blue'] });

Fit.ui模板引擎简单直观:

您可以从嵌入的HTML文件和外部HTML文件加载HTML-示例:

var t=new Fit.Template(true);
//加载嵌入式HTML
tpl.LoadHtml(`
{[MyHeadline]}
{[Description]}

  • {[ItemTitle]}
`); //从外部HTML文件加载HTML t、 LoadUrl(“view.html”,函数(发件人) { //模板已准备好填充 t、 Content.MyHeadline=“欢迎”; t、 Content.Description=“这是一个测试..”; 对于使用纯javascript的(var i=1;i:

function arrayToJSONProp(array, json) {
  var strJson = JSON.stringify(json);
  var output = "{";
  for(var i = 0; i < array.length; i++) {
    var elem = array[i];
    output += '"' +elem +'" : ' +strJson +", ";
  }
  return JSON.parse(output.slice(0, -2) +"}");
}

var colors = ["red", "green", "blue"]; // Colors array
var prop = { // JSON obj input
  "name" : "foo",
  "properties" : {
    "ran": "test"
  }
}

console.log(arrayToJSONProp(colors, prop)); // Output of JSON obj
函数arrayToJSONProp(数组,json){ var strJson=JSON.stringify(JSON); var输出=“{”; 对于(var i=0;i

谢谢你的回答,我实际上在寻找一个带有模板库的通用解决方案。