Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
175 views
in Technique[技术] by (71.8m points)

javascript - how do i create a new array if my arrays have the same id in React

how do i create a new array if my arrays have the same id in React I'm confused about processing the array into 2 arrays if he has the same id, then what are the right steps so I can find a way out?

my array

   array = [
    {
      name : 'foo1',
      id_ : 3451,
      statuse : true
    },
    {
      name : 'foo2',
      id_ : 3451,
      statuse : false
    },
    {
      name : 'foo3',
      id_ : 3452,
      statuse : false
    },
    {
      name : 'foo1',
      id_ : 3452,
      statuse : true
    },
  ]

and the results I want

result = [
    [
      {
        name : 'foo1',
        id_ : 3451,
        statuse : true
      },
      {
        name : 'foo2',
        id_ : 3451,
        statuse : false
      },
    ],
    [
      {
        name : 'foo3',
        id_ : 3452,
        statuse : false
      },
      {
        name : 'foo1',
        id_ : 3452,
        statuse : true
      },
    ]
  ]
question from:https://stackoverflow.com/questions/65890193/how-do-i-create-a-new-array-if-my-arrays-have-the-same-id-in-react

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Reply

0 votes
by (71.8m points)

Your question is a little unclear but I belive you want to group the elements of the array by the id_ field of the element.

You can do this with the following snippet:

const inputs = [
  { name : 'foo1', id_ : 3451, statuse : true },
  { name : 'foo2', id_ : 3451, statuse : false },
  { name : 'foo3', id_ : 3452, statuse : false },
  { name : 'foo1', id_ : 3452, statuse : true },
];

const ids = inputs.map(input => input.id_);
const uniqIds = [ ...new Set(ids) ];

const result = uniqIds.map(id => {
  return inputs.filter(input => input.id_ === id);
});

console.log(result);

与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
OGeek|极客中国-欢迎来到极客的世界,一个免费开放的程序员编程交流平台!开放,进步,分享!让技术改变生活,让极客改变未来! Welcome to OGeek Q&A Community for programmer and developer-Open, Learning and Share
Click Here to Ask a Question

...