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

如何使用JavaScript比对列表项,根据输入键查询对应关联值

JavaScript实现键值匹配查询方案

1. 核心逻辑说明

  • 首先将原始的类数组格式字符串解析为键值对映射对象,使用冒号:作为分隔符拆分每个项的键和值
  • 构建完映射表后,可直接通过键查询对应值,也可按需求遍历匹配

2. 完整实现代码

// 原始列表数据
const rawData = "[EMP004: BPCE-RNHC-25G8, EMP003: 8FIW-9JRB-NY4J, EMP005: 7QF2-6HI9-XKZZ, EMP002: SG8P-YQKG-ZV3C, EMP001: PBF7-WZHT-WPZR]";

// 第一步:解析原始数据为键值对映射
function parseRawData(rawStr) {
  // 去除首尾方括号,拆分所有条目
  const entryList = rawStr.slice(1, -1).split(', ');
  const resultMap = {};
  entryList.forEach(entry => {
    // 定位第一个冒号的位置,避免值中含冒号时拆分错误
    const colonIndex = entry.indexOf(':');
    const key = entry.slice(0, colonIndex).trim();
    const value = entry.slice(colonIndex + 1).trim();
    resultMap[key] = value;
  });
  return resultMap;
}

const empCodeMap = parseRawData(rawData);

// 第二步:查询匹配函数
function getValueByKey(inputKey) {
  // 高效查询:直接从映射对象取值
  return empCodeMap[inputKey] ?? '未找到匹配结果';
  
  // 若要求必须遍历查询,可替换为以下逻辑:
  // for (const [key, value] of Object.entries(empCodeMap)) {
  //   if (key === inputKey) return value;
  // }
  // return '未找到匹配结果';
}

3. 调用示例

console.log(getValueByKey('EMP004')); // 输出:BPCE-RNHC-25G8
console.log(getValueByKey('EMP001')); // 输出:PBF7-WZHT-WPZR
console.log(getValueByKey('EMP999')); // 输出:未找到匹配结果

拆分逻辑说明

每个列表项以第一个出现的冒号为分界点,前半部分去除首尾空格后作为键,后半部分去除首尾空格后作为值,保证拆分准确性。

内容的提问来源于stack exchange,提问作者WEI ZHUANG GOH

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 23:06:01