将行字符串推入对象数组

3

我希望将检索到的数据推入数组中,但它只会推入第一个对象。

const arr = [{ name: 'name1', item: [] }, { name: 'name2', item: [] }];
routes.forEach((elementRoute) => {
  const { methods } = elementRoute;
  for (const m in methods) {
    let { title } = methods[m];
    arr[0].item.push({
      name: title,
      request: { method: m,},
    });
  }
});

我的路由数组如下:

[
  {
    methods: {
      get: {
        title: 'get users',
      },
    },
  }
];

它只推送到项目数组的第一个对象。这是我实际想要的结果:
[
  {
    "name": "name1",
    "item": [
      { "name": "get users", "request": { "method": "get" } } }
    ]
  },
  {
    "name": "name2",
    "item": [
      { "name": "get users", "request": { "method": "get" } } }
    ]
  }
]

你的 routes 数组无效:你在最后一个元素后面放置了逗号,例如:[{x:'something',},] - FZs
它不会改变node.js中的任何内容。 - brxnzaz
1
你能否编辑你的问题,说明你的输入是什么,想要得到什么输出? - Aziz.G
1
我刚刚更新了我的问题,加上了我得到的内容。 - brxnzaz
1个回答

2
您还需要遍历arr以获取所有填充项。最初的回答中已包含此信息。

const 
    arr = [{ name: 'name1', item: [] }, { name: 'name2', item: [] }],
    routes = [{ methods: { get: { title: 'get users' } } }, { methods: { get: { title: 'get user id' }, delete: {} } }, ];

arr.forEach(({ item }) =>
    routes.forEach(({ methods }) => {
        for (const method in methods) {
            let { title: name = 'Not specified' } = methods[method];
            item.push({ name, request: { method } });
        }
    })
);

console.log(arr);
.as-console-wrapper { max-height: 100% !important; top: 0; }


1
我不明白,请补充您已有的内容和您想要得到的内容。 - Nina Scholz
1
看起来,你需要一个带有示例的新问题,你现在所拥有的我无法区分哪些是已有的,哪些是缺少的。 - Nina Scholz
1
实际上您在旧问题中创建了一个新问题。这使得任何答案都无效。请提出一个新问题并突出显示“iam”值的处理方式。请回滚此问题。 - Nina Scholz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接