巧用 ES6 方法找出两数组相同元素
要找出两个数组中相同的元素并将其放入一个新的数组中,可以使用ES6的 `Set` 和 `filter` 方法。以下是实现代码: ```javascript var arr1 = [1, 2, 7, 4, 3, "a", "d", "g"]; var arr2 = [7, 3, "d", "g", "h", 3, 7]; // 将 arr2 转换为 Set,以便快速查找 const set2 = new Set(arr2); // 使用 filter 方法过滤出 arr1 中存在于 set2 中的元素 const commonElements = arr1.filter(item => set2.has(item)); console.log(commonElements); // 输出: [7, 3, "d", "g"] ``` 解释 1. Set: `Set` 是一个内置对象,它只允许存储唯一的值。将 `arr2` 转换为 `Set` 可以提高查找效率。 2. filter: `filter` 方法创建一个新数组,其中包含所有通过测试的元素。这里我们使用 `set2.has(item)` 来检查 `arr1` 中的每个元素是否存在于 `set2` 中。 这样,`commonElements` 数组就会包含两个数组中相同的所有元素。 ######[AI写代码神器 | 276点数解答 | 2024-11-04 15:05:04]
相关提问
- Java 实现计算机硬件模拟:从 PCI 设备到主板、计算机的启动与关闭(字节豆包 | 716点数解答 | 2024-12-08 23:38:38)355
- Java 代码:模拟计算机主板启动与关闭 PCI 设备全流程(字节豆包 | 637点数解答 | 2024-12-09 08:31:54)321
- Java 实战:Vehicle 类与 User 类实现机动车速度功率控制( | 968点数解答 | 2024-03-12 11:26:25)567
- C++ 破解数字游戏:找出数组添加全排列后相同数字最大数量(字节豆包 | 456点数解答 | 2025-02-27 18:56:24)295
- C++助力小小李老师:求解数组添加排列后最多相同数字数量(字节豆包 | 424点数解答 | 2025-03-01 14:46:52)236
- C++助力小小李老师:破解数组数字游戏最高得分之谜(字节豆包 | 434点数解答 | 2025-03-05 07:50:34)255
- C++ 助力小小李老师玩转数字游戏,找出数组最大相同元素次数!(DeepSeek | 1118点数解答 | 2025-03-25 21:11:51)208
- C++ 助力小小李老师:解决数组添加排列找最大重复元素难题(DeepSeek | 833点数解答 | 2025-03-26 17:06:19)194
- C++助力小小李老师:破解数组排列数字游戏最高得分之谜(DeepSeek | 901点数解答 | 2025-03-26 17:08:11)193
- C++ 破解数字游戏:为数组添加排列找出最大相同元素数量(DeepSeek | 1815点数解答 | 2025-03-27 17:50:16)199
- C++ 助力小小李老师:找出数组添加排列后相同数字的最大数量 (DeepSeek | 762点数解答 | 2025-03-27 17:53:47)199
- 动态规划求解数组下标元素和最大值代码分析与优化(字节豆包 | 346点数解答 | 2026-03-16 17:56:30)34