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

如何使用JavaScript查找数组中的孤立条目

如何在JavaScript中找出数组里的孤立条目

要解决这个问题,我们可以通过统计节点出现频次的思路来定位孤立条目——毕竟像例子里的Paris只在目标条目中出现一次,这就是它和其他条目无关联的核心特征。

具体实现步骤

  1. 统计所有节点的出现次数
    先遍历整个输入数组,把每个条目的from和to节点都记录下来,统计每个节点在所有条目中出现的总次数。

  2. 筛选孤立条目
    再次遍历数组,找出那些包含「仅出现一次的节点」的条目——这类节点因为只在当前条目中出现,说明它没有和其他条目产生关联,对应的条目就是我们要找的孤立项。

完整代码示例

const input = [
  { from: "Hong Kong", to: "Bejing" },
  { from: "New York", to: "London" },
  { from: "San Francisco", to: "Hong Kong" },
  { from: "Paris", to: "New York" },
  { from: "Bejing", to: "Singapore" },
  { from: "London", to: "San Francisco" },
];

// 第一步:统计每个节点的出现频次
const nodeFrequency = {};
input.forEach(entry => {
  // 更新from节点的计数
  nodeFrequency[entry.from] = (nodeFrequency[entry.from] || 0) + 1;
  // 更新to节点的计数
  nodeFrequency[entry.to] = (nodeFrequency[entry.to] || 0) + 1;
});

// 第二步:找出包含唯一节点的条目
const isolatedEntry = input.find(entry => {
  return nodeFrequency[entry.from] === 1 || nodeFrequency[entry.to] === 1;
});

console.log(isolatedEntry); // 输出结果:{ from: "Paris", to: "New York" }

补充说明

  • 如果你的场景中可能存在多个孤立条目,可以把find换成filter,这样会返回所有符合条件的条目数组。
  • 要是你对「孤立条目」的定义是完全和其他条目无共享节点(即条目的from和to都只出现一次),可以修改筛选条件为:
    const isolatedEntries = input.filter(entry => {
      return nodeFrequency[entry.from] === 1 && nodeFrequency[entry.to] === 1;
    });
    

内容的提问来源于stack exchange,提问作者BlockChain Learner

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.28 19:07:49