繁体   English   中英

从 arrays 的数组中删除嵌套数组

[英]Remove nested array from array of arrays

首先,我不完全确定这是否是解决我遇到的问题的正确方法,但它就在这里。

我有两个 arrays

const projects = ["PP", "JJ"]
const issues = ["10000", "10002", "100003"]

对于每个问题,我都想像这样创建一个 object:

{
  "issueTypeId": "10002",
  "projectId": "PP",
  "viewType": "GIC"
}

最后以一组对象结束,例如:

[{
   "issueTypeId": "10002",
   "projectId": "PP",
   "viewType": "GIC"
},
{
   "issueTypeId": "10000",
   "projectId": "PP",
   "viewType": "GIC"
}]

到目前为止,这是我的逻辑

 const projects = ["PP", "JJ"] const issues = ["10000", "10002", "100003"] const p = issues.map(issue => { return projects.map(project => { return {issueTypeId: issue, projectId: project, viewType: "GIC"} }) }) console.log(p)

但是正如您所看到的,我在最后得到了一个 arrays 的数组,我很确定这是由于 double.map 逻辑。

1st - 有没有更好的方法来实现我的目标?

第二 - 如果不是,如何删除内部数组并获得一个

谢谢

使用flatMap而不是map 另外,通过明智地选择变量并使用箭头函数的缩写形式,您可以使用以下内容:

 const projects = ["PP", "JJ"], issues = ["10000", "10002", "100003"], viewType = "GIC", p = issues.flatMap(issueTypeId => projects.map(projectId => ({issueTypeId, projectId, viewType})) ); console.log(p)

你可以试试这个

const projects = ['PP', 'JJ'];
const issues = ['10000', '10002', '100003'];

let outArray = [];
issues.forEach((i) => {
  projects.forEach((p) => {
    outArray.push({
      issueTypeId: i,
      projectId: p,
      viewType: 'GIC',
    });
  });
});

console.log(outArray);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM