[英]How to update environment variable key name dynamically using NodeJS
我正在動態讀取環境變量(鍵和值)並形成以下數組:
commands: [
{
name: 'PRODUCT_NAME',
value: 'iPhone'
},
{
name: 'PRODUCT_PRICE',
value: '1232'
},
{
name: 'PRODUCT_TYPE',
value: 'Electronics'
},
{
name: 'PRODUCT_ID',
value: 'SKU29389438'
},
{
name: 'LOG_ENABLED',
value: 'TRUE'
},
]
我想動態更新這兩個屬性的key
名PRODUCT_TYPE
->
myapp.property.type.event
和PRODUCT_ID
->
myapp.property.product.enabled
最終輸出應如下所示:
commands: [
{
name: 'PRODUCT_NAME',
value: 'iPhone'
},
{
name: 'PRODUCT_PRICE',
value: '1232'
},
{
name: 'myapp.property.type.event',
value: 'Electronics'
},
{
name: 'myapp.property.product.enabled',
value: 'SKU29389438'
},
{
name: 'LOG_ENABLED',
value: 'TRUE'
},
]
請在下面找到我的product.js
代碼:
const commands = (Object.entries(process.env).map(([key, value]) => ({ name: key, value })))
console.log("commands : ", commands);
我是 Nodejs 的新手,有人可以幫助我如何動態更新這兩個鍵並形成最終數組嗎?
您的幫助將不勝感激!
1)您可以循環並將name
更改為:
const obj = { commands: [ { name: "PRODUCT_NAME", value: "iPhone", }, { name: "PRODUCT_PRICE", value: "1232", }, { name: "PRODUCT_TYPE", value: "Electronics", }, { name: "PRODUCT_ID", value: "SKU29389438", }, { name: "LOG_ENABLED", value: "TRUE", }, ], }; obj.commands.forEach((o) => { if (o.name === "PRODUCT_TYPE") o.name = "myapp.property.type.event"; if (o.name === "PRODUCT_ID") o.name = "myapp.property.product.enabled"; }); console.log(obj.commands);
/* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }
2)你也可以這樣做:
one-liner
obj.commands.forEach((o) => (o.name = changes[o.name] ?? o.name));
const obj = { commands: [{ name: "PRODUCT_NAME", value: "iPhone", }, { name: "PRODUCT_PRICE", value: "1232", }, { name: "PRODUCT_TYPE", value: "Electronics", }, { name: "PRODUCT_ID", value: "SKU29389438", }, { name: "LOG_ENABLED", value: "TRUE", }, ], }; const changes = { PRODUCT_TYPE: "myapp.property.type.event", PRODUCT_ID: "myapp.property.product.enabled", }; obj.commands.forEach((o) => { if (changes[o.name]) o.name = changes[o.name]; }); console.log(obj.commands);
/* This is not a part of answer. It is just to give the output full height. So IGNORE IT */ .as-console-wrapper { max-height: 100% !important; top: 0; }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.