gpt4 book ai didi

javascript - 计算javascript函数中的语句数

转载 作者:行者123 更新时间:2023-11-30 19:19:53 31 4
gpt4 key购买 nike

我想计算一段 javascript 代码中的语句数。这是为了评估编程挑战的代码有多短(如果有更好/更简单的方法来评估代码,我也有兴趣听听)。

出于此评估的目的,我想假设语句是能够在其中执行操作的任何内容,例如:

let values = ['test 1', 'test 2'];
for(let i in values) {
let object = {
a: i%3,
b: Math.floor(i/3),
c: i*2
};
let another = {test: 0 || 4};
let something = values[i];
let otherSomething = getSomeValues(object[a], object[b]);
setSomeValues(object[a], object[c]);
for(let j = 0; j < 5; i++) if(i < j) break;
}

有相当多的语法要涵盖,所以理想情况下我想用一个可用的库来做这件事——我的谷歌搜索无法找到任何非常合适的东西。

我尝试编写一个正则表达式来匹配语句之间所有可能的中断,但这很快就会变得困惑:

[\n;]|\)[ \w]|[{,][\s\w]+:\s*|[{}]

这是指向 the regexr 的链接我一直在用打破这一点:

  • [\n;] - 匹配换行符或分号,这是开始新语句的正常方式
  • \)[\w] - 匹配右括号后的语句,例如如果(某物)返回;
  • [{,][\s\w]+:\s* - 匹配对象中键值对的键
  • [{}] - 匹配 block 的左括号和右括号

我还删除了所有零长度匹配项,因为语句不能为空。

正如我所说,理想情况下我更喜欢图书馆,但我想就我的方法征求一些意见,以及我是否掌握了大部分边缘案例。

最佳答案

由于您正在尝试理解特定的代码块而不是构建库,因此您应该查看 astexplorer.net

Here is a link它显示了一个经过良好解析的树,如果需要,您可以将示例配置为使用替代解析器(babel、acorn、eslint 等)。

关于javascript - 计算javascript函数中的语句数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57595109/

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