我使用underscore.js
库从对象中提取属性。是否有更原生的JS方法来实现相同的目标:
var fullObject = {'name': 'Jack', 'age': 39, 'device': 'tablet', 'team': 'Red'}
const {name, device, team} = fullObject
console.log(name, device, team) // Jack tablet Red
有没有办法通过解构来创建新对象?
我想将name
,device
,team
的值分配给新对象。
目前我这样做:
const {name, device, team} = fullObject
const newObject = {name, device, team}
console.log(newObject) // { name: 'jack', device: 'tablet', team: 'red' }
有更好的方法吗?
答案 0 :(得分:2)
如果你在几个地方提取一个特定的子对象并且你希望它更干,你可以编写一个curried函数来接受要选择的键,然后返回另一个接受一个对象来提取它们的函数。
见下文用法:
const pick = (...keys) => (obj) => keys.reduce((acc, k) => (acc[k] = obj[k], acc), {})
const nameDeviceTeam = pick('name', 'device', 'team')
const fullObject = { name: 'Jack', age: 39, device: 'tablet', team: 'red' }
const newObject = nameDeviceTeam(fullObject)
console.log(newObject)