如何使用JSONata将两个数组合并为单个对象数组?
将两个数组合并为对象数组的实现方法
给定数据源:
const sourceData = { "event_date": ["a","b","c"], "values": [1,2,3] };
期望生成如下结构的结果:
{ "data": [ { "date": "a", "value": 1 }, { "date": "b", "value": 2 }, { "date": "c", "value": 3 } ] }
核心实现方案
利用JavaScript的Array.map()方法,遍历其中一个数组,通过索引匹配另一个数组的对应元素,构造目标对象:
const sourceData = { "event_date": ["a","b","c"], "values": [1,2,3] }; const mergedResult = { data: sourceData.event_date.map((dateStr, idx) => ({ date: dateStr, value: sourceData.values[idx] })) }; console.log(mergedResult);
兼容数组长度不一致的情况
如果两个数组长度不同,可通过取两者的最小长度来避免索引越界:
const mergedResult = { data: Array.from( { length: Math.min(sourceData.event_date.length, sourceData.values.length) }, (_, idx) => ({ date: sourceData.event_date[idx], value: sourceData.values[idx] }) ) };
内容的提问来源于stack exchange,提问作者dags
相关产品推荐
相关产品推荐

