[对象数组的JS数组

问题描述 投票:-1回答:1

我有一个JS数组(显示的4个示例实际有66个)

[["A","Example1"],["A","Example2"],["B","Example3"],["B","Example4"]]

我正在尝试进入多选下拉菜单的对象:

var opt = [{
label: 'A', children:[
        {"label":"Example1","value":"Example1","selected":"TRUE"},
        {"label":"Example2","value":"Example2","selected":"TRUE"} 
      ]
},

{
label: 'B', children:[
  {"label":"Example3","value":"Example3","selected":"TRUE"},
  {"label":"Example4","value":"Example4","selected":"TRUE"}
  ]
}
]

是否有简单的方法可以做到这一点?

javascript arrays object multi-select
1个回答
0
投票

使用reduce()forEach()获得预期结果。

var opt = [{
label: 'A', children:[
        {"label":"Example1","value":"Example1","selected":"TRUE"},
        {"label":"Example2","value":"Example2","selected":"TRUE"} 
      ]
},

{
label: 'B', children:[
  {"label":"Example3","value":"Example3","selected":"TRUE"},
  {"label":"Example4","value":"Example4","selected":"TRUE"}
  ]
}
]

var result = opt.reduce((acc, cur) => {
	cur.children.forEach((row) => {
		acc.push([cur.label, row.label]);
	});
	return acc;
}, []);

console.log(result);
© www.soinside.com 2019 - 2024. All rights reserved.