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

使用Lodash的_.some判断两数组交集的TypeScript问题

解决Lodash _.some判断数组交集的问题

你当前的代码返回false是因为**.some的第二个参数用法错啦**!.some的第二个参数需要是一个断言函数(用来检测每个元素的条件),而不是直接传入另一个数组。当你把array2直接传进去时,Lodash会把它当成一个函数来调用,这显然不符合预期,所以才返回false。

正确的_.some实现方式

我们可以把第二个参数写成一个函数,检查当前元素是否存在于array2中,用_.includes来做这个判断就很方便:

import _ from 'lodash';

let array1 = ["test", "some", "lodash"];
let array2 = ["some", "includes"];
let condition : boolean = _.some(array1, (item) => _.includes(array2, item));

console.log(condition); // 输出true

补充:其他可选方案

如果你只是想判断两个数组是否有交集,其实还有更直接的方法:

  • 用_.intersection:它会返回两个数组的交集,只要结果长度大于0就说明有共同元素:
    let condition = _.intersection(array1, array2).length > 0;
    
  • 原生JavaScript也可以实现(不用Lodash):
    let condition = array1.some(item => array2.includes(item));
    

不过既然你想练习_.some的用法,第一种方案完全没问题,而且逻辑清晰~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.11 08:45:59