gpt4 book ai didi

javascript - 是否可以使用 javascript 标记的模板字符串来对数组值进行插值?

转载 作者:太空宇宙 更新时间:2023-11-04 16:19:49 25 4
gpt4 key购买 nike

假设有一个对象 table像这样(代表数据库表结构):

table = { name: "Some table", code: "SOME_TABLE", 
columns: [
{ name : "Identifier", code: "ID", typ: "number" },
{ name : "Description", code: "DESCR", typ: "varchar2", length: 255 },
]
}

是否有一种模式如何编写允许插入 table.columns 的替换函数标记模板文字中的数组?

类似的东西

function sqlCreate ( strings, ...values ) { 
... do something very smart ...
}

并使用它:

sqlCreate`create table ${table.code} ( ...something...${table.columns}...inner template...${'.code'} ${'.typ'}...end of inner template )`

哪里${'.code'}${'.type'}会以某种方式引用 table.column 中对象的属性数组。

我试图弄清楚,但似乎没有多大意义,而是应该有一个专门的生成器函数来完成正确的事情。

您是否知道有任何成功的尝试将这个问题作为“纯模板解决方案”来解决?

最佳答案

您需要某种方法来分隔内部模板。您可以发明自己的语法来指示它的开始和结束位置,也可以只使用已有的语法 - 您可以在 ${} 中包含内部模板字符串。

对于像您的示例这样简单的事情,您甚至不需要自定义标记功能:

`create table ${table.code} (${table.columns.map(col =>`${col.code} ${col.typ}`).join(', ')})`

注意:由于模板字符串中的 ${} 总是立即求值,因此您始终必须将内部模板嵌入到某些回调函数代码中以延迟求值。或者你必须走“模板引擎”的路。

关于javascript - 是否可以使用 javascript 标记的模板字符串来对数组值进行插值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40745446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com