如何使用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
相关产品推荐
相关产品推荐

