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

JavaScript实现:列表项存在于指定数组时将对应布尔值设为true

实现方法

你可以按以下步骤完成逻辑处理:

  • 先将库存列表转为Set结构,相比数组的includes方法,Set的has方法查找效率更高,适合做存在性校验
  • 遍历第一个列表的所有项,列表中非数组类型的顶层布尔值直接保留,不需要修改
  • 遇到数组类型的子项时,取子项的第一个元素和库存列表做匹配:如果匹配成功,将子项的第二个值改为true;匹配失败则保留原有的false值

代码实现

// 原始数据
const list1 = [
  true,
  ['keyToOffice', false],
  false
]

const list2 = [
  {
    reference: 'keyToOffice',
    // 其余无关业务字段
  },
  {
    reference: 'keyToHouse',
    // 其余无关业务字段
  }
]

const inventory = [
  'keyToOffice'
]

// 核心处理逻辑
const inventorySet = new Set(inventory)
const result = list1.map(item => {
  // 非数组项直接返回原值
  if (!Array.isArray(item)) return item
  const [targetKey, originVal] = item
  // 命中库存则更新为true,否则保留原值
  return [targetKey, inventorySet.has(targetKey) ? true : originVal]
})

运行结果

执行上述代码后,result的值为:

[
  true,
  ['keyToOffice', true],
  false
]

和预期一致:keyToOffice存在于库存列表中,对应子数组的第二个值从false更新为true,其余项均保持原有值不变。

注:你给出的第二个列表在当前描述的逻辑中没有用到,若后续需要基于第二个列表做关联处理,可以基于现有逻辑扩展。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 10:48:19