我的indexOf()方法工作,但当涉及到最后一个值时,它停止工作



我有一个包含一组温度的数组:let arr2 =[12,5, - 5,0,4]。对于每一个温度,我想在1天内写温度+°,在2天内写温度2,等等,所以我需要增加天数,它必须从1开始,而不是从0开始。

它适用于数组的所有值,除了最后一个。为什么?在这个例子中,i的值是4,所以它应该是4+1 = 5,但不是记录"5天";它以"-1天"为单位记录日志,因此它显然遗漏了最后一个值。

我错在哪里?

let arr = [17, 21, 23];
let arr2 = [12, 5, -5, 0, 4];
const printForecast = function (arr) {
for (let i = 0; i < arr.length; i++)
console.log(`${arr[i]}° in ${arr.indexOf(arr[i + 1])} days ...`);
};
printForecast(arr2);

为什么不直接使用i + 1呢?

let arr = [17, 21, 23];
let arr2 = [12, 5, -5, 0, 4];
const printForecast = function (arr) {
for (let i = 0; i < arr.length; i++)
console.log(`${arr[i]}° in ${i + 1} days ...`);
};
printForecast(arr2);

你有这个问题,因为最后一个arr[i + 1]等于arr[5],索引不存在于你的数组。

最新更新