const disorders=[];
    const arr = [1,2,3,4,5];
    d3.csv("https://gist.githubusercontent.com/victoirebeaufils/bdc33d6da0fb98eacf4b6c7d630c280b/raw", function(data){
        const disorder = data.disorder;
        disorders.push(data.disorder);

   });

  console.log(disorders)
  console.log(disorders.length)
  console.log(arr)


当我展开[]选项卡时,数组在控制台中显示的长度为5,但是disorder.length返回0,并且我无法访问任何元素。

javascript - Javascript array.length在d3.csv()函数中的.push()之后返回0-LMLPHP

第一个数组运行良好,并且无需扩展选项卡即可显示元素的数量以及数组中的元素。我不确定这是什么意思或如何解决它,以便第二个正常工作。

最佳答案

由于d3.csv()是异步工作的,因此您需要具有一个回调函数:

例如:

const disorders=[];
const arr = [1,2,3,4,5];

function execute(callback) {
   d3.csv("https://gist.githubusercontent.com/victoirebeaufils/bdc33d6da0fb98eacf4b6c7d630c280b/raw", function(data){
     const disorder = data.disorder;
     disorders.push(data.disorder);
     callback(disorders);
   });
}

execute(function(result) {
   console.log(result)
   console.log(result.length)
   console.log(arr)
});

10-04 14:02