如何在JavaScript中将键数组与值数组组合为对应的键值对结构
问题分析
- 你当前代码的错误原因是直接将键名和键值拼接为字符串存入数组,得到的自然是拼接后的字符串元素,不符合键值对结构的需求
- 你给出的目标结构
["Test": "ID1", "Test2": "ID2", "Test3": "ID3"]在JavaScript中是非法语法,数组只能存储有序值,键值对需要用普通对象或ES6 Map实现,普通对象的合法格式为{"Test": "ID1", "Test2": "ID2", "Test3": "ID3"} - 你初始化的
new_arr是数组类型,无法存储键值对,需要改为初始化对象存储结构
实现代码
首先定义原始数组:
const keyArr = ["Test", "Test2", "Test3"] const valueArr = ["ID1", "ID2", "ID3"]
方法1:reduce实现(简洁写法)
const res = keyArr.reduce((obj, key, index) => { obj[key] = valueArr[index] return obj }, {})
执行后res就是符合需求的键值对对象。
方法2:循环实现(易理解)
const res = {} for (let i = 0; i < keyArr.length; i++) { res[keyArr[i]] = valueArr[i] }
若需要Map结构
如果你需要可迭代的键值对集合,可以用Map实现:
const res = new Map() for (let i = 0; i < keyArr.length; i++) { res.set(keyArr[i], valueArr[i]) } // 可通过res.get("Test")获取到对应值"ID1"
内容的提问来源于stack exchange,提问作者drago
相关产品推荐
相关产品推荐

