我正在尝试从API为图表排序数据,因此我需要根据货币名称对其进行筛选,以便获得它们的汇率。
Algo工作正常,但我的浏览器和图表中也出现了奇怪的输出。
浏览器中tempRates的输出如下:[7.4429, 7.4429, 7.4392, 7.4392]
,这是正确的输出。
但当我在浏览器控制台中展开相同的数组时,我会得到以下输出:
(4)[7.4429, 7.4429, 7.4392, 7.4392]
0: 1
1: 1
2: 1
3: 1
这适用于所有阵列。
但最后一个数组的值是(4)[1, 1, 1, 1]
,这是预期的输出。
Object.keys(data.rates).forEach((key) => {
this.data.labels.push(key); // date
});
Object.values(data.rates).forEach((value) => {
tempCurrency = Object.keys(value)[i];
Object.values(data.rates).forEach((rate) => {
if (tempCurrency === Object.keys(rate)[i]) {
tempRates.push(rate[tempCurrency]);
//tempRates.push(Math.round(Math.random() * 100));
}
});
console.log("log before push", tempRates);
this.data.datasets.push({
label: tempCurrency,
data: tempRates,
});
i++;
if (!(i === Object.keys(data.rates).length)) {
tempRates.length = 0;
}
});
我也尝试过使用随机数,但输出仍然存在同样的问题。所有数组都具有最后一个数组的值。
控制台屏幕拍摄
我所要做的就是将tempRates.length = 0;
更改为tampRates = []
。
我只是不知道这两种解决方案之间有什么区别。如果有人能向我解释一下,我将不胜感激