Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/433.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.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_Arrays_Reactjs_Destructuring - Fatal编程技术网

Javascript 如何对此对象数组进行分解

Javascript 如何对此对象数组进行分解,javascript,arrays,reactjs,destructuring,Javascript,Arrays,Reactjs,Destructuring,我试图对我的子项数组的元素使用解构,以获取直接引用链接和打开属性的变量。 具体地说,我正在尝试使用下面的代码,正如注释中指定的那样失败 const [{links, open}] = subItems.map(({ items }) => { document.getElementById(items); }); // Fails: returns nothing const {links, open} = subItems((items ) => { return i

我试图对我的
子项
数组的元素使用解构,以获取直接引用
链接
打开
属性的变量。
具体地说,我正在尝试使用下面的代码,正如注释中指定的那样失败

const [{links, open}] = subItems.map(({ items }) => {
  document.getElementById(items);
}); // Fails: returns nothing  

const {links, open} = subItems((items ) => {
  return items; 
}); // Fails: returns only the first `link` and `open`
      
// This is what the `subItems` array looks like:
export const subItems = [
  {
    links: [
      { title: 'ret', to: '#' },
      { title: 'def', to: '#' },
      { title: 'rev', to: '#' },
      { title: 'red', to: '#' },
      { title: 'im', to: '#' },
      { title: 'glossar', to: '#' }
    ],
    open: true
  },
  {
    links: [
      { title: 'recloud', to: '#' },
      { title: 'broker', to: '#' },
      { title: 'mercury', to: '#' },
      { title: 'investor', to: '#' }
    ],
    open: false
  }
];

另外,我是JS的新手,如果我误解了一些琐碎的事情,很抱歉。

这是否完成了您想要做的事情

//获取数组(但您可以通过任何方式获取它,可能是通过“导入”)
const subItems=getSubItems();
//在数组中循环(使用“subItem”作为每个数组元素的名称)
用于(子项的子项){
//分解数组中的当前元素(对对象使用`{…}`)
const{links,open}=子项;
//收集链接信息(这不是必需的--只是为了更好地打印)
const linkString=links.reduce(
(linkStr,link)=>linkStr+`title:${link.title},to:${link.to};`,
""
);
//使用链接执行某些操作并打开(我们可以打印'links',而不是linkString)
log(“links:,linkString,”\n打开,“\n\n”);
}
函数getSubItems(){
返回[
{
链接:[
{标题:'ret',至:'#'},
{标题:'def',至:'#'},
{标题:'修订',至:'#'},
{标题:'红色',至:'#'},
{标题:'im',收件人:'#'},
{标题:'glossar',收件人:'#'}
],
开放:是的
},
{
链接:[
{标题:'recloud',至:'#'},
{标题:'经纪人',收件人:'#'},
{标题:'水星',至:'#'},
{标题:'投资者',收件人:'#'}
],
开放:假
}
];

}
您想要哪个
链接
打开
?有两个,一个位于索引0,另一个位于索引1。或者你想要一个仅仅是这些的数组?或者…?您是否试图将所有
链接
属性获取到一个变量?类似于这样:您需要更清楚地了解输出。请检查这是否对您有帮助:
subItems.map({link,open})=>{}
Stack Overflow是一个非常活跃的地方。当你发布一个问题(或答案!)时,请留下几分钟,这样你就可以对评论中出现的任何问题做出回应。