У меня есть данные ниже, я хочу нажать в массив, но заказывая его по имени (x)
Вот данные:
params:
name2:
height: 2
name0:
height: 0
name1:
height: 3
И вот код:
data.f = []
Object.keys(data.params).forEach((key, idx) => {
data.f.push({
...data.params[key],
name: '${idx} - ${key}'
});
})
На данный момент он просто вталкивает его в массив, когда он читает его, но он не заказывается.
Как я могу заказать его либо после чтения, либо после его заполнения?
Object.keys(data.params)
.sort((a,b) => data.params[a].height > data.params[b].height)
.forEach((key, idx) => {
data.f.push({
...data.params[key],
name: '${idx} - ${key}'
});
})
Вы можете сделать это после использования функции сортировки с помощью пользовательской функции compareFunction
data.f.sort((a,b) => a.name > b.name)
Более того, если я могу предложить, вам не нужно создавать массив и нажимать на него. вы можете просто использовать функцию карты и написать:
data.f = Object.keys(data.params).map((key, idx) => {
return {
...data.params[key],
name: '${idx} - ${key}'
};
});
data.f
перед сортировкой
[<>]
вы получаете при редактировании.