【发布时间】:2022-01-13 11:16:24
【问题描述】:
我正在设计一个系统,但我遇到了一些瓶颈。
我有这样的用户数组:
const users = [
{
name: "Jack",
workspaces: [
{
_id: "61216512315615645jbk",
permissions: ["CAN_DELETE_WORKSPACE", "CAN_EDIT_PROJECT"],
},
{
_id: "41ss16512315615645bk",
permissions: ["CAN_DELETE_WORKSPACE", "CAN_EDIT_PROJECT"],
},
],
},
{
name: "Joe",
workspaces: [
{
_id: "71216512315615645jbk",
permissions: ["CAN_DELETE_WORKSPACE"],
},
],
},
];
我有这样的 activeWorkspace 对象:
const activeWorkspace = {
name: "W1",
_id: "61216512315615645jbk",
};
我需要过滤users数组中workspace_id等于activeWorkspace_id的对象。
输出必须是这样的:
{
name: "Jack",
workspaces: [
{
_id: "61216512315615645jbk",
permissions: ["CAN_DELETE_WORKSPACE", "CAN_EDIT_PROJECT"],
},
{
_id: "41ss16512315615645bk",
permissions: ["CAN_DELETE_WORKSPACE", "CAN_EDIT_PROJECT"],
},
],
}
我该怎么做?
此外: 如果我们想返回一个数组,而不是一个对象,我们应该怎么做呢?像这样:
[{
name: "Jack",
workspaces: [
{
_id: "61216512315615645jbk",
permissions: ["CAN_DELETE_WORKSPACE", "CAN_EDIT_PROJECT"],
},
{
_id: "41ss16512315615645bk",
permissions: ["CAN_DELETE_WORKSPACE", "CAN_EDIT_PROJECT"],
},
],
}]
谢谢
【问题讨论】:
-
预期的结果应该是什么?请添加问题本身
-
filter() 和 some() 是你需要使用的。
-
你
activeWorkspace._id是61216512315615645jbk但在预期输出中你有41ss16512315615645bk -
为什么不包括 Joe?这是拼写错误/复制粘贴错误吗?
-
Jack和Joe都有61216512315615645jbk工作区_id
标签: javascript node.js arrays