Как получить подмассив из родительского массива по свойству объектов из которых он состоит?
Есть такой массив:
let array = [
{
id: 0,
info: 'asd',
info2: 123124,
},
{
id: 1,
info: 'gdfg',
info2: 756,
},
{
id: 2,
info: '76tijy',
info2: 153,
},
{
id: 3,
info: 'asfss',
info2: 14235,
},
{
id: 4,
info: 'qwerf',
info2: 6545648,
}
]
Нужно динамически получать из него подмассив, вырезанный по двум id:
function getSubArray(array, id1, id2) {
//...
//найти объект с id1 в array
//найти объект с id2 в array
//поместить все объекты между ними в subArray
return subArray;
}
Используя эту функцию, она бы возвращала массив, состоящий из всех элементов array начиная с id1 и заканчивая id2. К примеру:
console.log(getSubArray(array, 1, 3));
//Console:
/*
{
id: 1,
info: 'gdfg',
info2: 756,
},
{
id: 2,
info: '76tijy',
info2: 153,
},
{
id: 3,
info: 'asfss',
info2: 14235,
}
*/
Как можно реализовать подобный функционал?
Ответы (1 шт):
Автор решения: vsemozhebuty
→ Ссылка
Например, так:
let array = [
{
id: 0,
info: 'asd',
info2: 123124,
},
{
id: 1,
info: 'gdfg',
info2: 756,
},
{
id: 2,
info: '76tijy',
info2: 153,
},
{
id: 3,
info: 'asfss',
info2: 14235,
},
{
id: 4,
info: 'qwerf',
info2: 6545648,
}
];
function getSubArray(array, id1, id2) {
const subArray = [];
for (const object of array) {
const id = object.id;
if (id >= id1 && id <= id2) subArray.push(object);
}
return subArray;
}
console.log(getSubArray(array, 1, 3));
Если массив отсортирован по id, можно обрывать цикл после выхода за максимум.