代码之家  ›  专栏  ›  技术社区  ›  Jimmy

用我自己的JSON替换javascript随机数生成器

  •  -1
  • Jimmy  · 技术社区  · 6 年前

    我试着用D3图显示我的数据。我遵循了教程,最后得到了以下代码:

      // 8. An array of objects of length N. Each object has key -> value pair, the key being "y" and the value is a random number
      var dataset = d3.range(n).map(function(d) {
        return {
          "y": d3.randomUniform(1)()
        }
      })
    

    我希望输入自己的JSON数据,而不是随机生成数字。这就是我所尝试的:

    var obj = {
        y: "1",
        y: "6",
        y: "10"
    };
    
    var dataset = JSON.stringify(obj);
    

    然而,当我这样做时,它不起作用。为了进行比较,这是旧代码(从console.log中)的结果:

    0: {y: 0.8863000631639524}
    1: {y: 0.730344915698621}
    2: {y: 0.23216952106703048}
    3: {y: 0.6065558075691728}
    

    (3) [{…}, {…}, {…}]
    (index):119 {"y":"10"}
    d3.v5.min.js:2 Error: <path> attribute d: Expected number, "M0,NaNC0,NaN,0,NaN,…".
    

    完整的代码在第41行: http://jsfiddle.net/spadez/mt1rngqo/13/

    1 回复  |  直到 6 年前
        1
  •  1
  •   rioV8    6 年前

    数据集是一个对象数组,每个对象都有一个字段 y 那是个数字,不是字符串

    var dataset = [
        {y: 1},
        {y: 6},
        {y: 10}
    ];
    
    
    //var dataset = JSON.stringify(obj);
    
    console.log(dataset);