gpt4 book ai didi

javascript - ES6 中将对象映射到对象数组

转载 作者:行者123 更新时间:2023-11-28 11:08:01 26 4
gpt4 key购买 nike

如何将对象转换为对象数组,同时保留键名称?

// actual 
obj = {
key1: null,
key2: "Nelly",
key3: [ "suit", "sweat" ]
}

// expected
arr = [
{ key2: "Nelly" },
{ key3: [ "suit", "sweat" ] }
]

目前我的解决方案是...

 var arr = Object.keys(obj).map(key => { if (obj[key]) return { key: obj[key] } });

返回

arr = [
undefined,
{ key: "Nelly" },
{ key: [ "suit", "sweat" ] }
]

最佳答案

.map() 返回与原始数组长度相同的数组。像您这样的带有回调的代码在某些情况下不返回值将导致元素具有值undefined。解决这个问题的一种方法是首先 .filter() 删除您不想保留的元素。

无论如何,要获取所需的键名称,您可以使用带有 computed property name 的对象文字:

{ [key]: obj[key] }

在上下文中:

const obj = {
key1: null,
key2: 'Nelly',
key3: [ 'suit', 'sweat' ]
}

const arr = Object.keys(obj)
.filter(v => obj[v] != null)
.map(key => ({ [key]: obj[key] }))

console.log(arr)

关于javascript - ES6 中将对象映射到对象数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44015014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com