堰阵列输出TS/Angular



我正在尝试从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 = []

我只是不知道这两种解决方案之间有什么区别。如果有人能向我解释一下,我将不胜感激

最新更新