Zapier中从JSON Webhook提取最新手机号的技术求助
解决Zapier Webhook数据提取最新手机号码的问题
修改后的代码
const entries = inputData.text.split("|||"); const records = []; // 将分割后的条目分组为结构化记录 for (let i = 0; i < entries.length; i += 3) { const dateStr = entries[i + 1]; const phoneLine = entries[i + 2]; if (!phoneLine) continue; // 跳过无效条目 // 拆分号码和类型 const [_, phone, type] = phoneLine.split("***"); records.push({ date: new Date(dateStr), phone: phone.trim(), type: type.trim() }); } // 筛选手机号并按日期降序排序 const sortedMobileNumbers = records .filter(record => record.type === "mobile") .sort((a, b) => b.date - a.date); // 获取最新的手机号,无结果时返回null const latestMobile = sortedMobileNumbers.length > 0 ? sortedMobileNumbers[0].phone : null; output = [{ latestMobile }];
代码说明
- 数据分组:原输入的
text字段用|||分割后,每3个元素对应一条完整记录(序号、日期、号码+类型),通过循环分组将其转换为包含日期、号码、类型的结构化对象。 - 筛选与排序:过滤出类型为
mobile的记录,利用Date对象的时间戳差值实现按日期从新到旧排序。 - 结果输出:取排序后的第一条记录的号码作为最新手机号,若没有匹配的手机号则返回
null。
注意事项
- 如果输入的日期格式无法被
new Date()正确解析,需要额外处理日期转换逻辑(比如手动拆分月/日/年重新构造Date对象)。 - 若输入数据的分组规则有变化(比如条目数量不是3的倍数),需要调整循环的步长和分组逻辑。
内容的提问来源于stack exchange,提问作者Jonathan
相关产品推荐
相关产品推荐

