Вот объект geojson
, который имеет массив объектов, у каждого объекта есть объект properties
.
Я понимаю, что есть много вопросов, связанных с массивами карт и объектами, но я не смог найти подобный случай. Я попытался использовать lodash map
и groupBy
для сопоставления свойств и группировки значений по их key
, но, честно говоря, я просто не знаю, какой должна быть комбинация функций.
Я могу получить часть имени свойства, выполнив следующее:
// since properties are the same for all features
// I extract them alone first
let properties = Object.keys(features[0].properties)
properties.map(Prentelement =>
{
let formated = {
// this gives me the first part
propertyName: Prentelement,
// I can't figure out this part to map the values uniquely under
children: [
{
value: "alex"
},
{
value: "cairo"
}
]
}
return formated;
})
Это пример формата ввода:
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"properties": {
"Name": "cairo",
"Type": "Province"
}
},
{
"type": "Feature",
"properties": {
"Name": "alex",
"Type": "Province"
}
}
]
}
И что я хочу сделать, это своего рода сводка по каждому доступному свойству и его возможным значениям для различных функций. Обратите внимание, что значение может быть повторено для всех функций, но я хочу, чтобы оно было доступно только один раз в конечном результате. Таким образом, результатом будет такой массив:
[
{
propertyName: "Name",
children: [
{value: "alex"},
{value: "cairo"}
]
},
{
propertyName: "Type",
children: [
{value: "Province"}
]
}
]