如何将双元素JavaScript数组转换为指定键值对对象?
数组转键值对对象的正确实现
你之前的reduce写法问题在于遍历数组时把每个元素同时当作键和值赋值,导致两个元素都被当成独立的键值对,自然得不到预期结果。针对你的[key, value]结构数组,这里有几种简洁的正确实现方式:
方法一:直接解构赋值(最优解)
利用数组的索引或解构语法直接提取键和值,创建目标对象:
const arr = ['last_updated_epoch', 1669949100]; // 方式1:通过索引取值 const obj = { [arr[0]]: arr[1] }; // 方式2:解构赋值更直观 const [key, value] = arr; const obj = { [key]: value };
方法二:使用reduce(适合扩展场景)
如果需要处理批量键值对数组(比如[[k1, v1], [k2, v2]]),可以用reduce,针对单个[key,value]数组的写法如下:
const arr = ['last_updated_epoch', 1669949100]; const obj = arr.reduce((acc, curr, idx) => { if (idx === 0) { acc._tempKey = curr; } else { acc[acc._tempKey] = curr; delete acc._tempKey; } return acc; }, {});
使用示例
得到正确对象后,即可推入空数组并使用数组方法:
const emptyArr = []; emptyArr.push(obj); // 示例:提取数组中对象的特定属性 const updatedTimes = emptyArr.map(item => item.last_updated_epoch); // 输出:[1669949100]
内容的提问来源于stack exchange,提问作者Jacobo Velasquez
相关产品推荐
相关产品推荐

