有很多方法可以达到你想要的效果。让我们把它们分类:
ES6值:
主要的方法是Object.values。但是使用Object。键和数组。映射你也可以得到预期的结果:
Object.values(obj)
Object.keys(obj).map(k => obj[k])
var obj =
A: (
名称:“约翰”
),
B: (
名称:“伊万”
)
)
log(’Object游戏机。价值观:',Object . values (obj))
log(’Object游戏机。群岛群岛(obj: ', Object)。地图(k => obj[k])
ES6键值:
使用map和ES6动态/计算属性和解构,你可以保留键并从map返回一个对象。
Object.keys(obj).map(k => ({[k]: obj[k]}))
Object.entries(obj).map(([k,v]) => ({[k]:v}))
Var obj = {
答:{
名称:“约翰”
},
B: {
名称:“伊万”
}
}
console.log(“对象。钥匙:“种(obj)。Map (k => ({
[k]: obj [k]
})))
console.log(“对象。条目:“Object.entries (obj)。Map (([k, v]) => ({
[k]: v
})))
Lodash值:
为此设计的方法是_。值也有“快捷键”,比如_。地图和实用方法_。toArray也将返回一个仅包含该对象的值的数组。你也可以_。映射通过_。键,并使用obj[key]表示法从对象中获取值。
注意:_。map传递给对象时,会使用它的baseMap处理程序,基本上是对象属性上的forEach。
_.values(obj)
_.map(obj)
_.toArray(obj)
_.map(_.keys(obj), k => obj[k])
Var obj = {
答:{
名称:“约翰”
},
B: {
名称:“伊万”
}
}
console.log(的价值观:_.values (obj))
console.log(地图:,_.map (obj))
console.log (toArray:, _.toArray (obj))
console.log('键:“_.map (_.keys (obj), k = > obj [k]))
< script src = " https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js " > < /脚本>
Lodash键值:
// Outputs an array with [[KEY, VALUE]]
_.entries(obj)
_.toPairs(obj)
// Outputs array with objects containing the keys and values
_.map(_.entries(obj), ([k,v]) => ({[k]:v}))
_.map(_.keys(obj), k => ({[k]: obj[k]}))
_.transform(obj, (r,c,k) => r.push({[k]:c}), [])
_.reduce(obj, (r,c,k) => (r.push({[k]:c}), r), [])
var obj = {
A: {
name: "John"
},
B: {
name: "Ivan"
}
}
// Outputs an array with [KEY, VALUE]
console.log('entries:', _.entries(obj))
console.log('toPairs:', _.toPairs(obj))
// Outputs array with objects containing the keys and values
console.log('entries:', _.map(_.entries(obj), ([k, v]) => ({
[k]: v
})))
console.log('keys:', _.map(_.keys(obj), k => ({
[k]: obj[k]
})))
console.log('transform:', _.transform(obj, (r, c, k) => r.push({
[k]: c
}), []))
console.log('reduce:', _.reduce(obj, (r, c, k) => (r.push({
[k]: c
}), r), []))
<script src="https://cdnjs.cloudflare.com/ajax/libs/lodash.js/4.17.10/lodash.min.js"></script>
注意,在上面的例子中使用了ES6(箭头函数和动态属性)。
如果ES6有问题,可以使用lodash _.fromPairs和其他方法来组合对象。