You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.21 04:45:32