Ниже мой код в JavaScript. Ответ на петлю внизу - правильный ответ.дилемма функционального программирования рекурсии
Моя рекурсивная версия неверна, и это настолько нелогично, что когда индекс равен 3, а длина массива равна 3, компьютер все еще входит в статус if ... почему? Если 3 не менее 3, компьютер не должен вводить этот оператор if. помогите мне исправить ответ рекурсии. Петля правильная и правильная, ее следует оставить в покое.
var data = [
{
name: "Jamestown",
population: 2047,
temperatures: [-34, 67, 101, 87]
},
{
name: "Awesome Town",
population: 3568,
temperatures: [-3, 4, 9, 12]
},
{
name: "Funky Town",
population: 1000000,
temperatures: [75, 75, 75, 75, 75]
}
];
рекурсии ответ
function john(arr, i, j, total, coord)
{
var total = total || 0;
var coord = coord || [];
if(i < arr.length)
{
if(j < arr[i].temperatures.length)
{
total = arr[i].temperatures[j] + total;
john(arr, i, j + 1, total, coord)
}
ave = total/arr[i].temperatures.length;
total = 0;
coord.push([ave, arr[i].population])
john(arr, i + 1, 0, total, coord)
}
return coord;
}
console.log("recursion answer(it is wrong) is")
console.log(john(data, 0, 0, 0))
ответ петли
var coords = [],
totalTemperature = 0,
averageTemperature = 0;
for (var i=0; i < data.length; i++) {
totalTemperature = 0;
for (var j=0; j < data[i].temperatures.length; j++) {
totalTemperature += data[i].temperatures[j];
}
averageTemperature = totalTemperature/data[i].temperatures.length;
coords.push([averageTemperature, data[i].population]);
}
console.log("correct answer is this loop answer ...")
console.log(coords)
Что вы пытаетесь сделать? – KSFT
запустите весь мой код и посмотрим, что я имею в виду. –
Использование правильной грамматики поможет много общаться, но нет, я не понимаю, что вы имеете в виду. Вы не ответили на мой вопрос. – KSFT