arrays - 如何使用nodejs转换和映射多个json对象?
问题描述
我正在尝试使用 nodejs 转换和映射/合并两个端点,我只知道现在学习 nodejs 的数据库。我需要使用 Nodejs 和 Promise 获得以下帮助
数据:
var a = [ { farmer_revenue_id: 63,
farmer_id: 518,
activity_id: 0,
revenue_type: 1,
value_date: '2018-07-01',
amount: '558.00',
remarks: '',
capture_date: '2018-07-17' }]
var b = [ { revenue_type_id: 1, name: 'Sale' }]
转换是在日期和金额上完成的。我们还将收入类型替换为收入类型名称。最后我们省略了一些不需要的数据。
预期输出:
[ { farmer_revenue_id: 63,
farmer_id: 518,
activity_id: 0,
revenue_type_name: sale,
value_date: '2018/07/01',
amount: $ 558.00,
capture_date: '2018/07/17' }]
解决方案
快速解决方法:
let a = [{
farmer_revenue_id: 63,
farmer_id: 518,
activity_id: 0,
revenue_type: 1,
value_date: '2018-07-01',
amount: '558.00',
remarks: '',
capture_date: '2018-07-17'
}];
let b = [{
revenue_type_id: 1,
name: 'Sale'
}];
a = a.reduce((reduced, aItem) => {
const aItemClone = {...aItem};
const foundB = b.find((bItem) =>
bItem.revenue_type_id === aItemClone.revenue_type
) || null;
if (foundB !== null)
aItemClone.revenue_type_name = foundB.name;
delete aItemClone.revenue_type;
reduced.push(aItemClone);
return reduced;
}, []);
console.log(a);
推荐阅读
- typescript - 使用具有多个 tsconfig 的自定义导入路径时找不到模块
- javascript - 使用 RXJS 过滤数组
- reactjs - React Native - 导航问题“未定义不是对象(t.props.navigation.navigate)”
- sql - 如何使用 SQL Server 将垂直行转换为列数据
- javafx - 如何在场景构建器中使 StylableDoubleProperty 可编辑
- excel - Sort Range in absolute value
- material-table - 如何设置多客户过滤器以协同工作
- javascript - 使用 jquery 过滤所选类别
- node.js - 使用节点预渲染动态内容 VueJs 应用程序并将预渲染页面缓存一天
- python - 检查了非数字值但类型错误:'float'和'str'的实例之间不支持'<'?