gpt4 book ai didi

javascript - 使用某种函数式编程将一个对象映射到另一个对象

转载 作者:行者123 更新时间:2023-11-28 14:39:38 33 4
gpt4 key购买 nike

我想以更实用的方式将一个对象数组映射到另一个对象数组,我正在使用 typescript 。

基本上我使用delete来删除对象上的属性,我想知道是否有更好的方法来编写它。

  const data = props.data.map(d => ({
order: d.position,
logs: d.batches.map(b => {
let log= {
amount: b.scrap,
batchNumber: '', // NO GOOD
}
if (!b.batch || b.batch.length === 0) {
delete log.batchNumber // NO GOOD
}
return log
}),
}))

示例输入数据:

const data = [
position: 1,
batches: [
{batchNumber: '', ammount: 3}
]
]

结果:

const data = [{
order: 1,
logs:[ {ammount:3}]
}
]

最佳答案

您可以对批处理执行另一个 map 以返回新的对象数组,并将其附加到返回的对象:

const out = data.map(({ position: order, batches }) => {
const logs = batches.map(({ batchNumber, ammount }) => {
if (batchNumber) return { batchNumber, ammount };
return { ammount };
});
return { order, logs }
});

<强> DEMO

关于javascript - 使用某种函数式编程将一个对象映射到另一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48541311/

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