Как только я поместил функцию в defer () в D3, структура данных внутри console.info изменилась в другой функции

Следующий фрагмент - это мой код, который будет извлекать данные из файла csv.

d3.queue()
    .defer(d3.csv, "sales.csv", function(d){
        //d.decade = d.decade.replace("-","_")
        //console.info('lalala')
    })
    .await(ready)

И тогда это функция, которая создаст пузырь.

function ready(error,datapoints){
    console.info(datapoints)
    var circles = svg.selectAll(".artist")
    .data(datapoints)
    .enter().append("circle")
    .attr("class","artist")// the ".artist" will transform into class name in HTML
    .attr("r", function(d){
        return radiusScale(d.sales)
    })
    .attr("fill","lightblue")
    .on("click",function(d){
        console.info(d)
    })
    //.attr("cx",100)
    //.attr("cy",300)

    simulation.nodes(datapoints)
        .on('tick', ticked)

    function ticked(){
        circles
            .attr("cx",function(d){
                return d.x
            })
            .attr("cy", function(d){
                return d.y
            })
    }
}

Проблема возникает, когда я делаю console.info (набор данных). Когда бы у меня ни было:

function(d){
        d.decade = d.decade.replace("-","_")
    }

в моем

.defer(d3.csv, "sales.csv", function(d){
        d.decade = d.decade.replace("-","_")
    })

результат в console.info (точки данных) будет примерно таким: weird_result

И если я удалю

function(d){
        d.decade = d.decade.replace("-","_")
    }

и становится:

defer(d3.csv, "sales.csv")

Результат был бы таким нормальным: normal_result

Может кто-нибудь объяснить мне, почему это так? И как в этом случае сделать остановку данных?

нужно вернуть что-то из функции-строки, добавить return d;

rioV8 23.10.2018 14:49

Спасибо чувак! Это ОЧЕНЬ помогает !!! : D

user8151693 24.10.2018 01:19
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
0
2
61
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Добавьте return d; в конце функции!

Другие вопросы по теме