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

如何在JS嵌套数组查询中仅获取true/false布尔判断结果

解决方案

原生JavaScript实现

你当前代码使用filter会返回符合条件的子数组集合,本身是数组类型,因此无法得到布尔值结果。只需将外层的filter替换为Array.prototype.some方法即可,some方法会在检测到第一个符合条件的元素时直接终止遍历并返回布尔值true,所有元素都不符合条件则返回false,比filter遍历全数组的效率更高。
修改后代码如下:

var parentArray = [
  [0.49988811188811194, 0.17249417249417248],
  [0.8181398601398602, null],
  [0.8181398601398602, 0.47785547785547783],
  [0.49988811188811194, 0.47785547785547783]
];

function containsNull(arr) {
  // 外层遍历所有子数组,内层遍历子数组元素判断是否存在null
  return arr.some(subArr => subArr.some(el => el == null));
}

console.log("-->", containsNull(parentArray)) // 输出 --> true

Lodash实现

有两种常用实现方案:

  1. 嵌套使用_.some,逻辑和原生实现一致,性能最优:
const containsNull = arr => _.some(arr, subArr => _.some(subArr, el => el == null));
  1. 先拍平二维数组再做判断,写法更简洁:
const containsNull = arr => _.some(_.flatten(arr), el => el == null);

注意:如果你只需要严格匹配null、不需要同时匹配undefined,可以将判断条件里的el == null改为el === null即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 01:24:03