Я пытаюсь решить следующую проблему с LoDash. Я знаю, как решить проблему, используя циклы for, но ищу современный функциональный метод решения проблемы.
У меня есть следующие данные:
const data = {
people: [
{
name: "Bob",
vehicles: [
{
model: "Mazda"
tires: [
{ pressure: 20 },
{ pressure: 22 },
{ pressure: 23 },
{ pressure: 21 },
]
},
{
model: "Harley Davidson"
tires: [
{ pressure: 20 }
{ pressure: 25 }
]
}
]
},
{...},
{...},
{...},
]
}
Из него я хочу извлечь список всех давлений в шинах, принадлежащих каждому человеку. Итак, как-то так:
[20, 22, 23, 21, 20, 25, ... ]
То, что я ищу, - это метод, который я могу назвать так:
const path = 'people.vehicles[*].tires[*].pressure';
const tirePressure = _.methodName(data, path);
Я знаю, что lodash поддерживает некоторые подобные функции - например, _.at(object, ['a[0].b.c', 'a[1]']);
(ссылка) , но, насколько я могу судить, он не поддерживает свертывание всего массива.