我正在嘗試使用 map 和 formEntries 函式將陣列鍵/值對轉換為物件我收到一個錯誤message:'Object.fromEntries is not a function'關于修復的任何想法
主檔案
const data = {}
const channelsMap = new Map(details.channels);
const channels = Object.fromEntries(channelsMap);
data = channels;
預期產出
data : {
channels: {
"EM": true,
"SMS": false
}
}
資料
{ details: {
"channels": [
{
"channelType": "EM",
"isActive": "true"
},
{
"channelType": "SMS",
"isActive": "false"
}]
}
uj5u.com熱心網友回復:
您需要將details.channels陣列縮減為一個物件,其中channelType是鍵,isActive是值。
const original = {
details: {
channels: [
{ channelType: "EM" , isActive: true },
{ channelType: "SMS" , isActive: false },
]
}
};
const transformed = {
data: {
channels: original.details.channels
.reduce((acc, { channelType, isActive }) =>
({ ...acc, [channelType]: isActive }), {})
}
};
console.log(transformed);
.as-console-wrapper { top: 0; max-height: 100% !important; }
uj5u.com熱心網友回復:
將您的 Node 版本升級到 v12.0.0 以上的版本應該可以。此方法未包含在您當前的 Node 版本中。檔案在這里。
uj5u.com熱心網友回復:
當您想更改值時,首先不允許使用 const ,其次這是預期輸出的代碼:
let data = {channels:details.channels.map(channel => ({[channel.channelType] : JSON.parse(channel.isActive) }))};
uj5u.com熱心網友回復:
試試這個
var data={data:{channels: Object.assign(...olddata.details.channels.map(
obj=> ({[obj.channelType]: JSON.parse(obj.isActive)})))}};
資料
{
"data": {
"channels": {
"EM": true,
"SMS": false
}
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/403347.html
標籤:
上一篇:使用AWSCLI在AWSDynamoDB中使用Json檔案放置專案時出錯
下一篇:將字典鍵傳遞給函式
