javascript - 从字符串中解析 Vector3?

标签 javascript node.js

如果我有一个类似于以下内容的文字字符串:

'(-0.0236, 0.0000, -31.2907)'

将其解析为 3 个 float 的最佳和最快方法是什么,我遇到的问题是,因为 float 可以是任何长度精度,所以我感觉就像一个典型的正则表达式,我还有太多的情况需要考虑正负符号。

最佳答案

这是另一种(有点hacky)的方法:

const SEPARATOR = /[^\d.+-]+/;

function parseFloats(str) {
    return str.split(SEPARATOR).filter(Boolean).map(parseFloat);
}

console.info(parseFloats('(-0.0236, 0.0000, -31.2907)'));

不是匹配 float (参见我的 other answer ,我仍然更喜欢它,因为它更容易理解),而是匹配所有不是有效浮点字符并将其用作分隔符。然后将其传递给一个过滤器,该过滤器会删除空字符串,最后单独解析每个结果 float 。

神奇的filter(Boolean)之所以有效,是因为空字符串在转换为 bool 值时计算结果为false。这与执行 filter(str => Boolean(str)) 完全相同。

关于javascript - 从字符串中解析 Vector3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58847017/

相关文章:

javascript - jquery 滚动动画不工作

javascript - 您将在哪里使用 Closure Library 实例化嵌套组件?

node.js - Node 应用程序之间通过 MQTT 进行简单通信

node.js - mongoose:mongodb update with multi true 不更新所有文档

javascript - 快速路由匹配 url

javascript - 在父 div 中居中 3 div

javascript - 使用 JS 获取复选框值

javascript - 如何从给定的数字获取数字格式和区域设置字符串?

node.js - 从等待访问对象 - NodeJS

javascript - Mysql Node.js 间歇性连接问题