Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以本机方式从对象中提取属性_Javascript_Node.js_Ecmascript 6 - Fatal编程技术网

Javascript 以本机方式从对象中提取属性

Javascript 以本机方式从对象中提取属性,javascript,node.js,ecmascript-6,Javascript,Node.js,Ecmascript 6,我使用underline.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 有没有办法通过解构创建新对象 我想将名称、设备、团队的值

我使用
underline.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
有没有办法通过解构创建新对象

我想将
名称
设备
团队
的值分配给一个新对象

目前我有:

const {name, device, team} = fullObject
const newObject = {name, device, team}
console.log(newObject) // { name: 'jack', device: 'tablet', team: 'red' }

有更好的方法吗?

如果您在多个位置提取特定的子对象,并且希望它更干燥,您可以编写一个curried函数,接受要拾取的键,然后返回另一个函数,该函数接受要从中提取的对象

有关用法,请参见下文:

const pick=(…keys)=>(obj)=>keys.reduce((acc,k)=>(acc[k]=obj[k],acc),{})
const nameDeviceTeam=pick('name','device','team')
const fullObject={name:'Jack',年龄:39岁,设备:'tablet',团队:'red'}
const newObject=nameDeviceTeam(fullObject)

log(newObject)
很确定使用DRY无法做到这一点,不幸的是,您必须编写自己的(short)函数