Сортировка массива данных в группы/коллекции? У меня имеется массив данных, допустим такой(JSON) : [
{
name: Apple
},
{
name: Orange
},
{
name: Tomato
}
]
И я хочу создать новые списки(коллекции, группы) , допустим "фрукты" и "овощи". Но при этом, чтобы изначальный список тоже был, он будет называться "Всё". Как мне лучше это сделать? Как будет быстрее, более оптимизированней для того, чтобы потом просматривать эти коллекции?
У меня на уме два варианта : 1) создать новые массивы ( под каждую коллекцию отдельный массив) и просто туда дублировать данные
2) Дать свойства каждому из элементов типа "collection: fruit" для первого элемента, и просто потом для отображения всей коллекции проходить по всему массиву и искать совпадения по названии коллекции, чтобы отобразить её.
У вас есть варианты? Мне кажется 1 - отстой, так как нужно дублировать, а 2 - отстой, потому что если будет много элементов в целом, то это будет долго

21 Авг 2019 в 06:23
187 +1
1
Ответы
1

Один из способов оптимизации этой задачи может быть использование объекта для хранения данных вместо массивов. Вы можете создать объект, где ключами будут названия коллекций (fruit, vegetables, etc.), а значениями - массивы элементов, соответствующие этим коллекциям. Например:

const data = [
{
name: "Apple",
type: "fruit"
},
{
name: "Orange",
type: "fruit"
},
{
name: "Tomato",
type: "vegetable"
}
];
const groupedData = data.reduce((acc, curr) => {
if (!acc[curr.type]) {
acc[curr.type] = [];
}
acc[curr.type].push(curr);
return acc;
}, {});
groupedData["All"] = data;
console.log(groupedData);

Таким образом, у вас будет один объект, в котором будут храниться все данные, разбитые по коллекциям. Это позволит вам быстро получить доступ к данным конкретной коллекции без необходимости дублирования данных.

Кроме того, вы можете производить дополнительную оптимизацию, используя объект Set для хранения уникальных значений коллекций. Это позволит вам быстро получить список доступных коллекций без повторного сканирования всего массива данных.

Надеюсь, что это поможет вам оптимизировать вашу задачу по сортировке данных в группы/коллекции.

20 Апр в 13:19
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир