我在寻找一种简单而优雅的方法来转换数组时有点卡住了
const array = ["k1", "v1", "k2", "v2"]
到一个对象const obj = {"k1": "v1", "k2": "v2"}
只是寻找灵感
最佳答案
也许是老了for-loop
?
回顾建议的解决方案
for 循环(干净且可读)
const obj = {}
for (let i = 0; i < array.length; i += 2) {
obj[array[i]] = array[i + 1]
}
Array.reduce(oneliner,但有点神秘)const obj = array.reduce((acc, curval, idx, arr) => (idx % 2) == 0 ?
(acc[curval] = arr[idx+1], acc) : acc, {});
_.chunk + Object.fromEntries我最喜欢这个解决方案,但它有
lodash
作为依赖。如果 ES 可以在本地实现它会很酷
array.chunk(2)
Object.fromEntries(_.chunk(array))
关于javascript - [key1, value1, key2, value2, ...] 到对象的链,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63513716/