如何用dataviewjs对#books下的书用groupby分类

我希望通过一个for循环提取#books/book_name下的所有书名,通过groupby分类展示每一本书以及有关这本书的所有链接,就和Codeblock Examples - Dataview (blacksmithgu.github.io)中展示的那样,只不过genre变成了书名。

这是我现在的代码

for (let group of dv.pages('#Books').groupBy(p => {
	const match = dv.regex("#Books/(\w+)", p.tags);
	return match || "未分类";
	})) {
	dv.header(3, group.key)
	dv.paragraph(
	dv.markdownTable(['name', 'tags'], group.rows
		.sort(p => p.tags)
		.map(p => [p.file.link, p.tags])))
}

dataview好像很多js函数都无法调用。

比如我尝试了regex提取,split分割,这些都会报错,如regex is not a function

所以现在我只能在把书名从tags里面单独提出来加到yaml中吗

这个问题我现在解决了

regex is not a function这个报错其实来源于我的部分标签并没有写在yaml并以数组为格式,所以对p.tags处理时,js希望p.tags是个数组,但实际是一个混合各种格式的数据,所以出现了这个错误。

为了解决这个问题,我使用linter自动将标签写入yaml,以及对yaml中标签强制转换成数组格式的功能,手动把所有含有#Books的md全点了一遍,这样我所有标签都是数组形式的了。

不过最终代码并不是我提出问题时给出的