Сделать элемент в нижней части динамического c массива объектов - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть массив объектов Dynami c, как показано ниже. Мне всегда нужно показывать «Другое» внизу списка. Это динамический массив c, новые элементы могут быть добавлены в список и не могут быть отсортированы по идентификатору, так как id является автоинкрементным числом. Как можно отсортировать это в Javascript? Dynami c Array:

 [{name: Apple, id: 1},
  {name: Other, id: 2 },
  {name: watermelon, id:3}
  {name: Orange, id: 4}]

Ожидаемый результат:

 [{name: Apple, id: 1},
  {name: watermelon, id:3}
  {name: Orange, id: 4},
  {name: Other, id: 2 }]

Ответы [ 2 ]

0 голосов
/ 24 апреля 2020

Это можно сделать: * Добавление его в конец списка

const data = [
  {name: 'Apple', id: 1},
  {name: 'Other', id: 2 },
  {name: 'watermelon', id:3},
  {name: 'Orange', id: 4},
];

// find item
const otherIndex = data.findIndex(item => item.name === 'Other');

if (otherIndex !== -1) {
  const otherItem = data[otherIndex];
  
  // make a copy of data
  const reorderedData = Array.from(data);
  
  // remove item
  reorderedData.splice(otherIndex, 1);
  
  // add item into the new list
  reorderedData.push(otherItem);
  
  console.log(reorderedData);
}
0 голосов
/ 24 апреля 2020

Вы можете использовать Array#splice (или неизменяемые варианты), чтобы всегда добавлять новые результаты перед концом массива.

array.splice(-1,0,newItem);

Для неизменного примера:

array = [...array.slice(0,-1),newItem,array[array.length-1]]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...