在正确的控制台输出之后,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