#javascript #sorting #d3.js
#javascript #сортировка #d3.js
Вопрос:
Каждый объект в моем массиве JSON имеет два свойства: имя и возраст. Я хотел бы отсортировать свои данные в порядке возрастания в зависимости от возраста. Однако я не знаю, как указать моему коду сортировать мои данные только по возрасту. Ниже приведен код, который я использовал. Когда я в настоящее время запускаю код, кажется, что он использует свойство name, которое идет первым.
var sortSquares = function() {
svg.selectAll("rect")
.sort(function(a, b) {
return d3.ascending(a, b)
})
.transition()
.....
.....
Комментарии:
1. Из вашего примера трудно сказать, но
d3.ascending(a.age, b.age)
это сработает, или я что-то упускаю?2. это сделало это, и это было так просто! спасибо, что нашли время для комментариев.
3. Рад помочь. Я добавил ответ ниже для полноты (чтобы было ясно, что на ваш вопрос был дан ответ).
Ответ №1:
Чтобы выполнить сортировку по атрибутам ваших данных, вам нужно d3.ascending
конкретно указать, какие атрибуты искать. Попробуйте это:
.sort(function(a, b) {
return d3.ascending(a.age, b.age)
})