MongoDB中如何将两个数组合并为对象内的TV_values新数组
数组合并及字段处理实现方案
需求说明
将输入JSON中的TV数组与values数组按对应索引位置合并为新数组TV_values,同时从TV元素自带的ISO格式时间字段T中提取出date(日期)、hour(小时)两个新增字段。
核心实现逻辑
- 遍历
TV数组,同时根据当前索引读取values数组对应位置的数值 - 对
T字段做字符串拆分:以T字符为分隔符,前半部分即为date值,后半部分前两位字符转数字即为hour值 - 合并原有
TV元素属性、对应values值、新增的date和hour字段,作为TV_values数组的元素
代码示例
JavaScript 实现
function processInputData(input) { const { TV, values } = input; const TV_values = TV.map((tvItem, index) => { const [dateStr, timeStr] = tvItem.T.split('T'); const hour = Number(timeStr.slice(0, 2)); return { ...tvItem, date: dateStr, hour, values: values[index] }; }); return { TV_values }; }
Python 实现
def process_input_data(input_data: dict) -> dict: tv_list = input_data["TV"] values_list = input_data["values"] tv_values = [] for index, tv_item in enumerate(tv_list): # 拆分时间字段获取日期和小时 date_part, time_part = tv_item["T"].split("T") hour = int(time_part[:2]) # 合并字段生成新元素 new_item = tv_item.copy() new_item.update({ "date": date_part, "hour": hour, "values": values_list[index] }) tv_values.append(new_item) return {"TV_values": tv_values}
代入题目给出的输入结构运行上述代码,即可得到你提供的预期输出结果。
内容的提问来源于stack exchange,提问作者bc110402922
相关产品推荐
相关产品推荐

