Javascript 通过异步调用在D3中调用JSON后,如何保存数据?

Javascript 通过异步调用在D3中调用JSON后,如何保存数据?,javascript,json,asynchronous,d3.js,Javascript,Json,Asynchronous,D3.js,我问了这个问题,这个问题被过滤为关于异步回调的相关问题 在阅读了相关文章后,我有了异步回调的想法。 然而,即使我理解了这个概念,它也不能解决我的问题 有人能告诉我如何将JSON带来的数据存储在D3中吗 我的代码是 var tableprice=[]; d3.json( "./itemlist.json").then(function(data) { for(let i=0;i<data[0].item[0].table.length;i++){ tableprice.p

我问了这个问题,这个问题被过滤为关于异步回调的相关问题

在阅读了相关文章后,我有了异步回调的想法。 然而,即使我理解了这个概念,它也不能解决我的问题

有人能告诉我如何将JSON带来的数据存储在D3中吗

我的代码是

var tableprice=[];


d3.json( "./itemlist.json").then(function(data)
{
    for(let i=0;i<data[0].item[0].table.length;i++){
    tableprice.push(data[0].item[0].table[i].price)}
})

    var update_price=d3.select('body').selectAll('div').data(tableprice);

    update_price.enter().append('div')
    .text(function(d){
        return d})
var tableprice=[];
d3.json(“./itemlist.json”)。然后(函数(数据)
{

对于(让i=0;i我不确定代码的其余部分是什么样子的,但是有没有理由不能这样做呢?:

d3.json( "./itemlist.json")
    .then(data => {
        return data[0].item[0].table.map(item => item.price);
    })
    .then(prices => {
        let update_price = d3.select('body').selectAll('div').data(prices);
        update_price.enter().append('div').text(d => d);
    });

甚至把它缩短:

d3.json( "./itemlist.json")
    .then(data => {
        let prices = data[0].item[0].table.map(item => item.price);
        let update_price = d3.select('body').selectAll('div').data(prices);
        update_price.enter().append('div').text(d => d);
    });