управление сортировкой данных в d3.js

#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)
})