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

如何用JavaScript或Lodash判断指定字符串是否在含多数组的对象中

判断指定字符串是否存在于含多字符串数组的对象中

JavaScript原生实现

可以通过Object.values()提取对象中所有的数组,再结合Array.some()和Array.includes()快速判断:

const object = {
  arrayA: ["A1", "A2"],
  arrayB: ["B1", "B2"]
};

function isStringInObject(targetStr, obj) {
  // 提取对象的所有数组属性值
  const allArrays = Object.values(obj);
  // 检查是否有任意一个数组包含目标字符串
  return allArrays.some(arr => arr.includes(targetStr));
}

// 测试示例
console.log(isStringInObject("A1", object)); // 输出 true
console.log(isStringInObject("B3", object)); // 输出 false

逻辑说明:Object.values()会返回对象所有属性值组成的数组(这里都是字符串数组),some()方法只要检测到有一个数组满足arr.includes(targetStr)的条件,就会立即返回true,无需遍历所有数组,性能更高效。

Lodash工具库实现

Lodash提供了更简洁的API组合,有两种常用方式:

方式一:直接遍历对象属性值检查

const _ = require('lodash');

const object = {
  arrayA: ["A1", "A2"],
  arrayB: ["B1", "B2"]
};

function isStringInObject(targetStr, obj) {
  // 遍历对象的每个数组属性,检查是否包含目标字符串
  return _.some(obj, arr => _.includes(arr, targetStr));
}

// 测试示例
console.log(isStringInObject("A2", object)); // 输出 true
console.log(isStringInObject("C1", object)); // 输出 false

方式二:扁平化所有数组后检查

如果需要后续复用合并后的字符串数组,可以先扁平化再判断:

const _ = require('lodash');

const object = {
  arrayA: ["A1", "A2"],
  arrayB: ["B1", "B2"]
};

function isStringInObject(targetStr, obj) {
  // 将所有数组合并为一个一维数组
  const allStrings = _.flatMap(obj);
  // 检查目标字符串是否在合并后的数组中
  return _.includes(allStrings, targetStr);
}

// 测试示例
console.log(isStringInObject("B1", object)); // 输出 true
console.log(isStringInObject("A3", object)); // 输出 false

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 17:37:01