как мне создать новый массив, если мои массивы имеют одинаковый идентификатор в React

#javascript #reactjs

#javascript #reactjs

Вопрос:

как мне создать новый массив, если мои массивы имеют одинаковый идентификатор в React Я запутался в обработке массива в 2 массива, если у него одинаковый идентификатор, тогда каковы правильные шаги, чтобы я мог найти выход?

мой массив

    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
    },
  ]
 

и результаты, которые я хочу

 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
      },
    ]
  ]
 

Ответ №1:

Ваш вопрос немного неясен, но я полагаю, что вы хотите сгруппировать элементы массива по id_ полю элемента.

Вы можете сделать это с помощью следующего фрагмента:

 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);