up:: Obsidian
source:: Queries - Dataview
source:: Sources - Dataview
source:: [Bug] file.inlinks not working correctly · Issue 196 · blacksmithgu/obsidian-dataview · GitHub

dv.list(dv.pages("#Info").file.link)
let inlink = dv.current().file.inlinks;
let info = dv.pages("#Info").file.link;
let sets = new Set();
 
for(let All of inlink){
	dv.list(dv.page(All));
}
//dv.list(dv.pages().file.tags.where(t => t.startsWith("#Info"));
 
dv.list(info);
dv.list(inlink);
//dv.list(info.tags.where(t => t.startsWith("#Info"));
for(let inlink of [[dv.current().file.inlinks]]){
	dv.pages(inlink)
}
//dv.list(dv.current().file.inlinks)
//dv.list([[dv.current().file.inlinks]])

dv.current().file.inlinks.array()
現在のファイルにリンクされてるファイルの配列はある。
ここから、Infoタグが付いてるファイルの配列を見つける。

bookタグの付いたページに、さらにgenreセクションだけをgroup名義で回す。
dv.tableはヘッダーリストと2D配列が必要。
2D配列はファイルの持つそれぞれの要素を.mapでマッピングしてやればできる。

FLATTENは分割。
あるファイルが複数のフィールドを持っていた場合に、列を分割して表示する。

inlinksで出てくる奴からなんとかpages情報を抜けないか?

//現在のファイルのパス
let page = dv.current().file.path;
//セット
let pages = new Set();
 
//現在のファイルパスを入れた配列
let stack = [page];
//ファイルパス配列が1つ以上なら
while (stack.length > 0) {
	//elem変数にファイルパスをポップ
    let elem = stack.pop();
    //ファイルパスの情報をmeta変数に
    let meta = dv.page(elem);
    //もしmeta変数が空でないなら
    if (!meta) continue;
 
	//inlink変数用意
	//meta変数からファイルのinlinks情報を抜き、outlinks情報と結合し、配列化して回す
    for (let inlink of meta.file.inlinks.concat(meta.file.outlinks).array()) {
        //ログにinlink変数の中身を出力
        console.log(inlink);
        //もしセット変数にinlinkされてるファイルのパスが存在すれば、さっさと次のforへ
        if (pages.has(inlink.path)) continue;
        //セット変数にinlinkのパスを加える
        pages.add(inlink.path);
        //ファイルパス変数にinlinkのパスを加える
        stack.push(inlink.path);
    }
}
 
// Data is now the file metadata for every page that directly OR indirectly links to the current page.
let data = dv.array(Array.from(pages)).map(p => dv.page(p));
dv.list(data.file.link);

結局、最終的にはjsではなく普通のクエリを使うことで解決。