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);