You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React中如何循环处理JS对象转录文本以使用map方法渲染组件

完全可以实现,你只需要批量遍历point数组处理转录文本即可,无需手动声明单个变量存储拆分结果。

注意异步逻辑优先级

你用的xml解析器parseString是异步回调方法,所有操作ress的逻辑必须放在回调内部执行,否则会出现ress为undefined的报错。

批量处理代码示例

parser.parseString(xmlToParse, function (err, result) {
  if (err) return console.error('xml解析失败', err);
  const ress = result;
  const regex = / (?=\w+:)/g;
  // 遍历所有point条目,批量拆分转录文本
  const processedTranscripts = ress.ROOT.record[0].index[0].point.map(pointItem => {
    // 加可选链做容错,避免部分条目缺失字段导致报错
    const rawTranscript = pointItem.partial_transcript?.[0] || '';
    return {
      // 拆分后的转录片段
      segments: rawTranscript.split(regex),
      // 同时可以把你渲染需要的其他字段一起带上
      time: pointItem.time?.[0] || '',
      title: pointItem.title?.[0] || ''
    }
  });
  // 拿到processedTranscripts后就可以存到React state里供渲染使用
  // 比如setTranscripts(processedTranscripts)
});

React 渲染示例

拿到处理好的数组后直接调用map方法渲染组件即可:

// 假设你已经把processedTranscripts存在state的transcripts字段里
return (
  <div className="transcript-container">
    {transcripts.map((item, index) => (
      // 你的自定义转录组件
      <TranscriptItem
        key={index}
        title={item.title}
        time={item.time}
        segments={item.segments}
      />
    ))}
  </div>
)

processedTranscripts数组的下标0、1、2、3对应你原来的ptr0、ptr1、ptr2、ptr3,也可以直接通过下标按需取用。

内容的提问来源于stack exchange,提问作者Muttarab Ahmad

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:45:01