【发布时间】:2021-06-13 01:08:21
【问题描述】:
我的string如下
let a = "0j (0.001953125+0j) (-0.001953125+0.001953125j) (0.998046875+0j) (-0.001953125+0j) (0.001953125+0j) (0+0.0914587j)"
关于string的信息:
1/ 每个substring是complex number,格式为a+bj
2/complex number 的可能格式为a+bj,a,bj。例如:1+2j、1、2j
3/每个substring之间有一个空格( )
4/我看到0+bj(例如:0+5j)或a+0j(例如:5+0j)格式是不可能的/由后端创建的,所以这种类型的format/ presentation不适合我的情况。
5/ 如果substring 仅包含real/imaginary 部分,则不会使用parenthesis ()。例如:(5),(5j) 是不可能的。他们将是5,5j
我需要从该字符串创建一个 JSON 或 JavaScript 对象,用于绘制数据。数据来自Flask backend,与each request 不同。我发现制作这个 JSON 对象的一种方法是来自 array,它应该看起来像
let my_array = [[0,0], [0.001953125,0], [-0.001953125,0.001953125], [0.998046875,0],[-0.001953125,0],[-0.001953125,0],[0,0.914587]]
但是我完全迷失在制作这个数组中。最初,我已经通过a.replaceAll("j","") 从字符串中删除了所有j,但是我还没有找到一种方法来制作我想要的数组结构。如果我得到数组,我可以使用以下方法制作 JSON 对象:
my_array = [[0,0], [0.001953125,0], [-0.001953125,0.001953125], [0.998046875,0],[-0.001953125,0],[-0.001953125,0],[0,0.914587]]
temp_key = ["i", "q"]
my_json = {
}
for(let a = 0; a < my_array.length; a++){
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_json: ",my_json)
我们将不胜感激有关制作此数组的建议。
【问题讨论】:
-
j是干什么用的,+是干什么用的?最初我认为 j =0是一个单独的数字,但后来在第三组中被忽略了? -
0.0.914587j看起来像错字?你的意思是0.0914587j? -
我认为这个问题不清楚。
5j、5、-5-1j、-5j+2或+5-1j这样的值是否可能? -
@vanowm
j是虚部。数据来自 Python 后端作为字符串。+也是表示类型 a+bj -
@CertainPerformance 是的。修复它
标签: javascript arrays string