在正确的控制台输出之后,Javascript数组立即变得未定义

在正确的控制台输出之后,Javascript数组立即变得未定义,javascript,jquery,arrays,Javascript,Jquery,Arrays,我有一个函数,可以用给定的数据绘制图表。数据通过一个参数传递。函数如下所示: drawCustomChart(element, data) { console.log(data); for (var i = 0; i < data.length; i++) { element.append( `<div class="chart__item--${data[i][1]}"> <div

我有一个函数,可以用给定的数据绘制图表。数据通过一个参数传递。函数如下所示:

drawCustomChart(element, data) {
    console.log(data);
    for (var i = 0; i < data.length; i++) {
        element.append(
            `<div class="chart__item--${data[i][1]}">
                <div class="chart__item__tag">${data[i][0]}</div>
                <div class="chart__item__bar">
                    <div class="chart__item__bar__inner" style="width: ${data[i][2]}%" data-chart-bar="${data[i][1]}"></div>
                    <div class="chart__item__bar__tooltip chart__item__bar__tooltip--${data[i][1]}" data-tooltip="${data[i][1]}">
                        <div class="chart__item__bar__tooltip__arrow"></div>
                        <span class="chart__item__bar__tooltip__label">${data[i][0]}: ${data[i][2]}</span>
                    </div>
                </div>
                <div class="chart__item__label">${data[i][2]}</div>
            </div>`
        );
    }
}
Array[13]
    0: Array[3]
    1: Array[3]
    2: Array[3]
    3: Array[3]
    4: Array[3]
    5: Array[3]
    6: Array[3]
    7: Array[3]
    8: Array[3]
    9: Array[3]
    10: Array[3]
    11: Array[3]
    12: Array[3]
    length:  13
    __proto__: Array[0]
传递给DroperSelectResultChart(数据)的数据是一个二维数组,如下所示:

drawCustomChart(element, data) {
    console.log(data);
    for (var i = 0; i < data.length; i++) {
        element.append(
            `<div class="chart__item--${data[i][1]}">
                <div class="chart__item__tag">${data[i][0]}</div>
                <div class="chart__item__bar">
                    <div class="chart__item__bar__inner" style="width: ${data[i][2]}%" data-chart-bar="${data[i][1]}"></div>
                    <div class="chart__item__bar__tooltip chart__item__bar__tooltip--${data[i][1]}" data-tooltip="${data[i][1]}">
                        <div class="chart__item__bar__tooltip__arrow"></div>
                        <span class="chart__item__bar__tooltip__label">${data[i][0]}: ${data[i][2]}</span>
                    </div>
                </div>
                <div class="chart__item__label">${data[i][2]}</div>
            </div>`
        );
    }
}
Array[13]
    0: Array[3]
    1: Array[3]
    2: Array[3]
    3: Array[3]
    4: Array[3]
    5: Array[3]
    6: Array[3]
    7: Array[3]
    8: Array[3]
    9: Array[3]
    10: Array[3]
    11: Array[3]
    12: Array[3]
    length:  13
    __proto__: Array[0]
主数组中的每个数组包含三个值。问题是这个。在drawCustomChart函数中的console.logs行(
console.log(data)
)上,它工作正常,数组被记录下来。但是,在日志之后,出于某种原因,它会再次执行console.log,然后显示
undefined
。由于数组突然变得未定义,drawCustomChart方法输出一个关于
data.length
的错误(因为
data
现在未定义)

为什么会发生这种情况?我如何解决它?

试试这个

drawCustomChart(element, data) {
    console.log(data);
    for (var i = 0; i < Object.keys(data).length; i++) {
        element.append(
            `<div class="chart__item--${data[i][1]}">
                <div class="chart__item__tag">${data[i][0]}</div>
                <div class="chart__item__bar">
                    <div class="chart__item__bar__inner" style="width: ${data[i][2]}%" data-chart-bar="${data[i][1]}"></div>
                    <div class="chart__item__bar__tooltip chart__item__bar__tooltip--${data[i][1]}" data-tooltip="${data[i][1]}">
                        <div class="chart__item__bar__tooltip__arrow"></div>
                        <span class="chart__item__bar__tooltip__label">${data[i][0]}: ${data[i][2]}</span>
                    </div>
                </div>
                <div class="chart__item__label">${data[i][2]}</div>
            </div>`
        );
    }
}
drawCustomChart(元素、数据){
控制台日志(数据);
对于(var i=0;i