Словарь в печати javaScript в консоли - PullRequest
0 голосов
/ 24 января 2019

Я собираюсь найти файл csv для данных, относящихся к самоубийствам, учитывая эти year и suicide_no. Я хочу сделать сумму количества самоубийств в год. У меня есть этот код:

d3.csv("master.csv", function(error,data){
    if(error) console.log("Erro no ficheiro csv");

    var years = [];
    var suicides = [];

    var taxaAno = new Object();
    var taxaAno = {};

    data.forEach(function(d){
        years = +d.year;
        suicides = +d.suicides_no;


        if (taxaAno==null){
            taxaAno[years]= suicides;
        }
        else{
            taxaAno[years]+= suicides;
        }            


    });

    console.log(taxaAno);
});

Я хотел, чтобы словарь появился в конце. Но это выглядит так:

 {1985: NaN, 1986: NaN, 1987: NaN, 1988: NaN, 1989: NaN, 1990: NaN, 1991: NaN, 1992: NaN, 1993: NaN, 1994: NaN, 1995: NaN, 1996: NaN, 1997: NaN, 1998: NaN, 1999: NaN, 2000: NaN, 2001: NaN, 2002: NaN, 2003: NaN, 2004: NaN, 2005: NaN, 2006: NaN, 2007: NaN, 2008: NaN, 2009: NaN, 2010: NaN, 2011: NaN, 2012: NaN, 2013: NaN, 2014: NaN, 2015: NaN, 2016: NaN}

1 Ответ

0 голосов
/ 24 января 2019

Вы проверяете, является ли taxaAno null/undefined вместо taxaAno[years].Это означает, что вы всегда нажимаете на эту строку:

taxaAno[years]+= suicides;

Итак, в первый раз вы добавляете число (suicides) к undefined.Должно быть:

   if (taxaAno[years] == null){
        taxaAno[years] = suicides;
   } else {
        taxaAno[years]+= suicides;
   }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...