映射数组交集

JavaScriptJavaScriptBeginner
立即练习

This tutorial is from open-source community. Access the source code

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

在本实验中,我们将探讨 JavaScript 中数组交集的概念。具体来说,我们将实现一个函数,该函数在对两个数组的每个元素应用提供的函数之后,返回这两个数组之间的共同元素。本实验将帮助你理解如何在 JavaScript 中使用高阶函数来操作数组并解决常见的编程问题。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("`JavaScript`")) -.-> javascript/BasicConceptsGroup(["`Basic Concepts`"]) javascript(("`JavaScript`")) -.-> javascript/AdvancedConceptsGroup(["`Advanced Concepts`"]) javascript/BasicConceptsGroup -.-> javascript/variables("`Variables`") javascript/BasicConceptsGroup -.-> javascript/data_types("`Data Types`") javascript/BasicConceptsGroup -.-> javascript/arith_ops("`Arithmetic Operators`") javascript/BasicConceptsGroup -.-> javascript/comp_ops("`Comparison Operators`") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("`Higher-Order Functions`") javascript/AdvancedConceptsGroup -.-> javascript/spread_rest("`Spread and Rest Operators`") subgraph Lab Skills javascript/variables -.-> lab-28485{{"`映射数组交集`"}} javascript/data_types -.-> lab-28485{{"`映射数组交集`"}} javascript/arith_ops -.-> lab-28485{{"`映射数组交集`"}} javascript/comp_ops -.-> lab-28485{{"`映射数组交集`"}} javascript/higher_funcs -.-> lab-28485{{"`映射数组交集`"}} javascript/spread_rest -.-> lab-28485{{"`映射数组交集`"}} end

查找映射数组交集的说明

要在对两个数组的每个元素都应用一个函数之后找到它们的共同元素,请按以下步骤操作:

  1. 打开终端/SSH 并输入 node
  2. 使用以下提供的代码:
const intersectionBy = (a, b, fn) => {
  const s = new Set(b.map(fn));
  return [...new Set(a)].filter((x) => s.has(fn(x)));
};
  1. 在代码中,将 ab 替换为你的数组,并将 fn 替换为你要应用于每个元素的函数。
  2. 运行代码以获取包含共同元素的结果数组。

示例:

intersectionBy([2.1, 1.2], [2.3, 3.4], Math.floor); // [2.1]
intersectionBy(
  [{ title: "Apple" }, { title: "Orange" }],
  [{ title: "Orange" }, { title: "Melon" }],
  (x) => x.title
); // [{ title: 'Orange' }]

在第一个示例中,函数 Math.floor 应用于数组 [2.1, 1.2][2.3, 3.4],返回共同元素 [2.1]
在第二个示例中,函数 x => x.title 应用于数组 [{ title: 'Apple' }, { title: 'Orange' }][{ title: 'Orange' }, { title: 'Melon' }],返回共同元素 [{ title: 'Orange' }]

总结

恭喜你!你已经完成了映射数组交集实验。你可以在 LabEx 中练习更多实验来提升你的技能。

您可能感兴趣的其他 JavaScript 教程