gpt4 book ai didi

javascript - 通过使用 javascript 转换数据类型从字符串创建数组

转载 作者:行者123 更新时间:2023-12-02 02:09:04 26 4
gpt4 key购买 nike

我的字符串如下所示

let a = "0j (0.001953125+0j) (-0.001953125+0.001953125j) (0.998046875+0j) (-0.001953125+0j) (0.001953125+0j) (0+0.0914587j)"

有关字符串的信息:
1/每个子字符串都是复数,格式为a+bj
2/复数的可能格式可以是a+bj,a,bj。例如:1+2j12j
3/每个子字符串之间有一个空格( )
4/我看到 0+bj(例如:0+5j)或 a+0j(例如:5+0j )格式不可能/由后端创建,因此我的案例不考虑这种类型的格式/演示
5/如果子字符串仅包含实部/虚部部分,则不会使用括号()。例如:(5),(5j) 是不可能的。它们将是 5,5j

我需要从该字符串创建一个 JSON 或 JavaScript 对象,用于绘制数据。数据来自Flask 后端,并且对于每个请求来说都是不同的。我发现制作此 JSON 对象的一种方法是来自 数组,它应该看起来像

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)

有关制作此数组的建议将不胜感激。

最佳答案

您可以按空格分割,然后使用正则表达式来匹配子字符串中的数字字符(例如 0.001953125+0j0.0019531250).

const str = "0j (0.001953125+0j) (-0.001953125+0.001953125j) (0.998046875+0j) (-0.001953125+0j) (0.001953125+0j) (0+0.914587j)";
const arr = str
.split(' ')
.map((substr) => {
const [real, imag = 0] = substr.match(/-?\d+(?:\.\d+)?/g).map(Number);
return [real, imag];
});
console.log(arr);

-?\d+(?:\.\d+)? 是:

  • -? - 可能匹配前导 -
  • \d+ - 匹配一个或多个数字
  • (?:\.\d+)? - 可选择匹配以下内容(数字的小数部分):
    • \. - 文字 .
    • \d+ - 一位或多位数字

关于javascript - 通过使用 javascript 转换数据类型从字符串创建数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67954066/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com