想象一下,我有以下对象:
"MyObject": {
"Foo": "b",
"Bar": "d",
"NewEngland": "12",
"GreenBay": "12",
"NewYork": "10",
"Seattle": "3"
}
如何将其转换为:
[{
name: 'New England', value: 12
}, {
name: 'Green Bay', value: 12
}, {
name: 'New York', value: 10
}, {
name: 'Seattle', value: 3
}]
请注意,我删除了Foo
和Bar
属性。
理想情况下,我想使用ES6或lodash。
答案 0 :(得分:2)
这个怎么样?
_(MyObject).omit(['Foo', 'Bar']).map((value, name) => ({ name, value })).value()
您正在使用lodash链接,首先使用省略来取出其键位于该数组中的对象中的键值对,然后您将使用map创建对象{{1来自每个键值对。
答案 1 :(得分:1)
一个ES6解决方案是使用Set
:
let object = {
"Foo": "b",
"Bar": "d",
"NewEngland": "12",
"GreenBay": "12",
"NewYork": "10",
"Seattle": "3"
}
let keys = new Set(Object.keys(object))
keys.delete('Foo')
keys.delete('Bar')
let result = [...keys].map(k => ({name: k, value: object[k]}))
console.log(result)