Node.js多文件关键词匹配:生成对应文件编号数组问题
关键词跨文件存在性的数组输出问题解决
你的代码问题在于每次匹配文件时,直接用data[val] = ["x"]覆盖了之前的数组,导致最终只能保留最后一个匹配的文件编号,而不是累加所有匹配项。
修正思路:先给每个关键词初始化一个空数组,再通过push方法把匹配到的文件编号添加进去,而不是替换整个数组:
let Page1data = filtered.map((val) => { let data = {}; // 先初始化空数组 data[val] = []; if (Page1.includes(val)) { data[val].push(1); // 用数字类型更符合需求,也可以用字符串"1" } if (Page2.includes(val)) { data[val].push(2); } if (Page3.includes(val)) { data[val].push(3); } // 如果需要过滤掉没有匹配任何文件的关键词,可以加判断 // if (data[val].length === 0) delete data[val]; return data; }); console.log(Page1data);
这样修改后,当关键词同时存在于多个文件时,对应的数组会依次添加文件编号,比如同时在三个文件中就会得到[1,2,3],仅在1和2中则得到[1,2]。
内容的提问来源于stack exchange,提问作者rakesh laishetty
相关产品推荐
相关产品推荐

