【发布时间】:2020-08-17 17:48:37
【问题描述】:
我有一个这样的对象数组:
const arrayOfObjects = [
{app: 'User', subpage: 'Dashboard', path: '/user/dashboard'},
{app: 'User', subpage: 'Profile', path: '/user/profile'},
{app: 'User', subpage: 'Settings', path: '/user/settings'},
{app: 'Library', subpage: 'Dashboard', path: '/library/dashboard'},
{app: 'Library', subpage: 'Settings', path: '/library/settings'},
{app: 'Material', subpage: 'Dashboard', path: '/material/dashboard'}]
我想要一个数组数组...其中每个“子数组”都是来自 arrayOfObjects 的原始对象数组,仅基于应用程序属性(用户、库、材料)分离。因此,新数组应如下所示:
newArray = [
[{app: 'User', subpage: 'Dashboard', path: '/user/dashboard'},
{app: 'User', subpage: 'Profile', path: '/user/profile'},
{app: 'User', subpage: 'Settings', path: '/user/settings'}],
[{app: 'Library', subpage: 'Dashboard', path: '/library/dashboard'},
{app: 'Library', subpage: 'Settings', path: '/library/settings'}],
[{app: 'Material', subpage: 'Dashboard', path: '/material/dashboard'}]
]
我已经用 .map 和 .forEach 尝试了几件事,但我做的最好的是将对象数组转换为数组数组...但没有我需要的分组。
【问题讨论】:
-
map 的问题在于,您最终会得到一个与输入数组具有相同数量元素的输出数组,而您在此处不希望这样做。将此作为“一体式”操作完成的“正确”数组运算符将是减少,请参阅stackoverflow.com/questions/14446511/…
标签: javascript arrays