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

使用JavaScript将复数格式字符串转换为实部虚部二维数组的方法

实现方案

处理逻辑

  • 第一步:清理原始字符串,移除所有左右括号
  • 第二步:按空格分割字符串,得到每个独立复数的子串数组
  • 第三步:遍历每个子串,按规则解析为[实部, 虚部]的数组:
    • 若子串包含+:按+拆分后,前半为实部,后半移除j后为虚部,分别转为数字即可
    • 若子串包含j:仅存在虚部,实部为0,虚部为子串移除j后转数字的结果
    • 其余情况:仅存在实部,虚部为0,实部为子串转数字的结果

完整代码示例

// 原始输入字符串
let a = "0j (0.001953125+0j) (-0.001953125+0.001953125j) (0.998046875+0j) (-0.001953125+0j) (0.001953125+0j) (0+0.0914587j)"

// 1. 清理括号,分割为单复数字符串数组
const complexStrList = a.replace(/[()]/g, '').split(' ')

// 2. 解析为目标二维数组
const my_array = complexStrList.map(str => {
  if (str.includes('+')) {
    // 完整实部+虚部格式
    const [realStr, imagStr] = str.split('+')
    const real = Number(realStr)
    const imag = Number(imagStr.replace('j', ''))
    return [real, imag]
  } else if (str.includes('j')) {
    // 仅虚部
    const imag = Number(str.replace('j', ''))
    return [0, imag]
  } else {
    // 仅实部
    const real = Number(str)
    return [real, 0]
  }
})

// 后续原有转JSON逻辑可直接复用
const temp_key = ["i", "q"]
const my_json = {}
for(let a = 0; a < my_array.length; a++){
  const temp_json = {};
  for(let b = 0; b < my_array[a].length; b++){
    temp_json[temp_key[b]] = my_array[a][b];
  }
  my_json[String(a)] = temp_json;
}

console.log("my_array: ", my_array)
console.log("my_json: ", my_json)

说明

上述代码完全适配给出的后端返回字符串规则,无需额外兼容边缘格式,可直接处理动态返回的不同内容。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.16 20:15:06