为了账号安全,请及时绑定邮箱和手机立即绑定

如何从 Function() 调用中的参数 JSON 返回 RegExp.$ 参数?

如何从 Function() 调用中的参数 JSON 返回 RegExp.$ 参数?

aluckdog 2023-03-03 09:56:43
我正在尝试将一组参数从 JSON 文件返回到 RegExp.$(又名 JS 的 f 字符串)。const schema = require('../schema.json').Flights;class flightRepo{    keys = Object.keys(schema);    create(db) {            return client.query(            "INSERT INTO flights ($1, $2, $3, $4, $5, $6) VALUES ($7, $8, $9, $10, $11, $12)",            keys[0], keys[1], keys[2], keys[3], keys[4], keys[5],            db.schema.keys[0], db.schema.keys[1], db.schema.keys[2], db.schema.keys[3], db.schema.keys[4], db.schema.keys[5]        );    }}关于client.query:来自 Deno 的 PostgreSQL Lib数据库的客户端对象:传递列表 [args[0-5] for each key] 以创建新的数据库条目JSON 结构{    "Flights" : {        "FlightNo": "INT PRIMARY KEY",        "Airlines": "STRING 50",        "Time": "DATETIME",        "OnTime": "BOOLEAN",        "Dep": "STRING 4",        "Arr": "STRING 4"    }}我想要做的是消除手动指定 n 个参数 (keys[0-5]) 和 ($1-12) 的需要,而是创建一个表达式来为任何 x-item 键列表执行此操作。(也很高兴知道一种方法来消除在 Ln.1 中输入“Flights”JSON 键的需要)
查看完整描述

1 回答

?
噜噜哒

TA贡献1784条经验 获得超7个赞

我不得不做出一些假设,但是您可以通过$#基于数组keys(可能在模板文字中)创建标记并使用扩展符号来展开keys和db.schema.keys数组来使代码改变键的数量;看评论:


const schema = require('../schema.json').Flights;


class flightRepo {

//    ^−−−−−−−−−−−−−−−−−−−−−−−−−−−−−− the convention is to capitalize this F

    keys = Object.keys(schema);


    create(db) {    

        return client.query(

            `INSERT INTO flights (${keys.map((_, i) => `${i + 1}`)}) VALUES (${keys.map((_, i) => `${i + 1 + keys.length}`)})`,

            ...keys,

            ...db.schema.keys // Assumes `db.schema.keys` is known to have the same length as `keys`

        );

    }

}

也很高兴知道一种方法来消除在 Ln.1 中输入“Flights”JSON 键的需要


你需要说出你想要的对象的哪一部分。如果需要,您可以通过使用解构和重命名来重新定位它:


const {Flights: schema} = require('../schema.json');

...但是您所拥有的可能更清楚。或者当然,不要更改名称:


const {Flights} = require('../schema.json');

...并使用Flights而不是schema. 但是,如果它引用的不是构造函数,那么将其大写可能会造成混淆。


现在您已经显示了 JSON,我们可以看到(至少在这个例子中)Flights是对象的唯一属性。如果你可以依赖它,你可以这样做:


const data = require("./schema.json");

const schema = data[Object.keys(data)[0]];


查看完整回答
反对 回复 2023-03-03
  • 1 回答
  • 0 关注
  • 84 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信