gpt4 book ai didi

javascript - 如何将当前数组格式更改为对象数组格式?

转载 作者:行者123 更新时间:2023-12-02 16:10:59 27 4
gpt4 key购买 nike

如何将来自 api 的以下数据结构更改为下面定义的所需格式?

inspectionViewAllRs = [
{
INSPN_XFER_SEQ_NR: {
value: '5'
},
FNRL_FLG: {
label: 'No',
value: 'N'
},
HAS_PAST_INSPN: {
value: '3'
},
MTG_CO_PHN_AREA_CD: {
value: ''
},
DECLARATION_CD: {
label: 'US Citizen/Non-Citizen National',
value: 'CZ'
},
....
....
....
},
{ ... }
{ ... }
{ ... }
]

我怎样才能将它转换成这种对象数组格式?

inspectionViewAllRs = [
{ label: "", value: '5' },
{ label: "No", value: "N" },
{ label: "", value: "3" },
{ label: "", value: "" },
{ label: "US Citizen/Non-Citizen National", value: "CZ" },
....
....
....
]

我尝试执行以下操作,但这并没有太大帮助:

    if(!_.isEmpty(this.state.inspectionViewAllRsData)) {
const result = this.state.inspectionViewAllRsData.map((data, i) => {
const items = Object.values(data);
const newItem = {}
newItem.label = items[i].label;
newItem.value = items[i].value;

return newItem
})

console.log("result ", result)

// this is what I see printed out in console log
// result (5) [{…}, {…}, {…}, {…}, {…}]
0: {label: undefined, value: "5"}
1: {label: "No", value: "N"}
2: {label: undefined, value: "3"}
3: {label: undefined, value: ""}
4: {label: "", value: ""}
length: 5
}

为什么我没有得到所有其余数据的返回?

最佳答案

使用 Array#flatMapObject#values获取一个对象值列表,然后是 Array#map获得所有相同的属性:

const inspectionViewAllRs = [
{
INSPN_XFER_SEQ_NR: { value: '5' },
FNRL_FLG: { label: 'No', value: 'N' },
HAS_PAST_INSPN: { value: '3' },
MTG_CO_PHN_AREA_CD: { value: '' },
DECLARATION_CD: { label: 'US Citizen/Non-Citizen National', value: 'CZ' },
},
{
DECLARATION_CD: { label: 'US Citizen/Non-Citizen National', value: 'CZ' },
}
];

const res = inspectionViewAllRs
.flatMap(Object.values) // get one list of objects
.map(({ label = '', value = '' }) => ({ label, value })); // return list of label/value objects

console.log(res);

关于javascript - 如何将当前数组格式更改为对象数组格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68044276/

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