如何将数组最后一项的NEXT_OFFSET提取到外层并移除元素内该字段
代码修改方案
你只需要调整原有逻辑,拆分data数组处理和NEXT_OFFSET提取两步即可,修改后的代码如下:
// 第一步:处理数组元素,移除每个元素的NEXT_OFFSET字段 const processedData = payload.map(({QUALITY, TEMPERATURE, SENSOR_READING_DATETIME, SOURCE_COMPONENT_ID, SENSOR_NAME})=> ({ TELEMATICS: { QUALITY, TEMPERATURE }, SOURCE_COMPONENT_ID, SENSOR_NAME, SENSOR_READING_DATETIME })); // 第二步:提取数组最后一条的NEXT_OFFSET,兼容空数组场景 const NEXT_OFFSET = payload.length ? payload.at(-1).NEXT_OFFSET : null; // 组装最终返回结构 const result = { data: processedData, NEXT_OFFSET };
改动说明
- 调整map方法的返回值,删除
NEXT_OFFSET字段,保证处理后的数组元素不会携带该字段 - 单独从原始payload数组的最后一项提取
NEXT_OFFSET值,和data数组平级放在最终返回对象中 - 增加空数组兼容逻辑,避免payload为空时读取属性报错,若需要兼容低版本JS运行环境,可将
payload.at(-1)替换为payload[payload.length - 1]
内容的提问来源于stack exchange,提问作者Nikita Alekseev
相关产品推荐
相关产品推荐

