Javascript JS:将2个命名间隔对象减少为1个
我有一个对象,其中有两个命名的空间对象:Javascript JS:将2个命名间隔对象减少为1个,javascript,Javascript,我有一个对象,其中有两个命名的空间对象: myObject = { name1: { name: "bill", settings: [1,2,5], }, name2: { name: "frank", settings: [5,1,19], }, } 我最终只想使用第二个名称空间(name2)并返回一个单独的未命名间隔对象,如: { name: 'frank',
myObject = {
name1: {
name: "bill",
settings: [1,2,5],
},
name2: {
name: "frank",
settings: [5,1,19],
},
}
我最终只想使用第二个名称空间(name2)并返回一个单独的未命名间隔对象,如:
{
name: 'frank',
settings: [5,1,19]
}
我知道我可以做
Object.entries(myObject)[1]
,但是我如何使用reduce实现这一点呢?好的,首先我们要将您拥有的对象myObject转换为数组。我们可以很容易地利用Object.values()这样做
然后,我们需要在新数组上使用reduce函数来提取第二个空间
const secondNamespace = myArray.reduce((t, n) => n);
请记住,这不是最佳实践,此处不建议使用reduce,因为reduce并不适用于这种特定场景。但是,这将适用于您尝试执行的操作,并且在性能上也足够。转换为条目,然后仅使用最后一个元素来减少:
Object.entries(myObject).reduce((acc, [key, val]) => val);
让myObject={
名称1:{
姓名:“比尔”,
设置:[1,2,5],
},
名称2:{
姓名:“弗兰克”,
设置:[5,1,19],
},
}
让result=Object.entries(myObject).reduce((acc,[key,val])=>val);
document.write(JSON.stringify(result))
为什么要使用reduce
(仅适用于阵列)?很难想象这样一种场景:您不会只执行var myNewObject=myObject.name2
Object.entries(myObject).reduce((acc, [key, val]) => val);