在javascript中操纵数组响应

在javascript中操纵数组响应,javascript,arrays,algorithm,javascript-objects,Javascript,Arrays,Algorithm,Javascript Objects,我有一个来自后端的对象数组响应,我想在前端处理它 目前的答复: const availableModules = [ { key: "tshirt", color: "#305b2d", status: "active", }, { key: "tshirt", color: "#066da0", status: "active

我有一个来自后端的对象数组响应,我想在前端处理它

目前的答复:

const availableModules = [
  {
    key: "tshirt",
    color: "#305b2d",
    status: "active",
  },
  {
    key: "tshirt",
    color: "#066da0",
    status: "active step 2",
  },
  {
    key: "tshirt",
    color: "#772016",
    status: "active step 3",
  },
  {
    key: "tshirt",
    color: "#742016",
    status: "canceled",
  },
  {
    key: "short",
    color: "#702010",
    status: "refunded",
  },
];
我如何操作它,使所有活动状态(“活动,活动步骤2和活动步骤3”)都位于如下对象数组中

有什么建议吗

const availableModules = [
  {
    key: "tshirt",
    color: "#305b2d",
    status: "active",
    modules: 
    [
    { key: "tshirt",
    color: "#066da0",
    status: "active step 2"}, 
    {  key: "tshirt",
    color: "#772016",
    status: "active step 3"}
    ],
  },
  {
    key: "tshirt",
    color: "#742016",
    status: "canceled",
  },
  {
    key: "short",
    color: "#702010",
    status: "refunded",
  },
];

这是我到目前为止的进步

const arr = availableModules.map((group) => {
for (const groupItem in group) {
  console.log(`${groupItem}: ${group[groupItem]}`);
 }
})


您可以这样做:

const availableModules=[
{
钥匙:“T恤”,
颜色:“305b2d”,
状态:“活动”,
},
{
钥匙:“T恤”,
颜色:“066da0”,
状态:“活动步骤2”,
},
{
钥匙:“T恤”,
颜色:“772016”,
状态:“活动步骤3”,
},
{
钥匙:“T恤”,
颜色:“742016”,
状态:“已取消”,
},
{
键:“短”,
颜色:#702010“,
状态:“已退款”,
},
];
const activeModules=availableModules.filter((m)=>
m、 状态。包括(“活动”)
);
const otherStatusModules=availableModules.filter(
(m) =>!m.status.包括(“活动”)
);
常数newModules=[
{
…活动模块[0],
modules:activeModules.filter((ux,idx)=>idx>0),
},
…其他状态模块,
];

console.log(newModules)您可以执行以下操作:

const availableModules=[
{
钥匙:“T恤”,
颜色:“305b2d”,
状态:“活动”,
},
{
钥匙:“T恤”,
颜色:“066da0”,
状态:“活动步骤2”,
},
{
钥匙:“T恤”,
颜色:“772016”,
状态:“活动步骤3”,
},
{
钥匙:“T恤”,
颜色:“742016”,
状态:“已取消”,
},
{
键:“短”,
颜色:#702010“,
状态:“已退款”,
},
];
const activeModules=availableModules.filter((m)=>
m、 状态。包括(“活动”)
);
const otherStatusModules=availableModules.filter(
(m) =>!m.status.包括(“活动”)
);
常数newModules=[
{
…活动模块[0],
modules:activeModules.filter((ux,idx)=>idx>0),
},
…其他状态模块,
];
console.log(newModules)