试图在一系列物体中找到最冷和最热的城市


// function
function findColdHot(array) {
// create an empty object
var resultObj = {};
// create coldest and hottest variables
let coldest = Infinity
let hottest = -Infinity
// iterate over the array
for (let i = 0; i < array.length; i++) {
if (array[i].temp > hottest) {
hottest = array[i].city;
} else if (array[i].temp < coldest) {
coldest = array[i].city;
}
}
// create coldest and hottest properties
resultObj['Coldest Place'] = coldest
resultObj['Hottest Place'] = hottest;
// return result object
return resultObj;
}
// tests
var input = [
{city: 'Helsinki', temp: 12},
{city: 'Berlin', temp: 10},
{city: 'Oslo', temp: 4},
{city: 'Nairobi', temp: 39},
{city: 'Paris', temp: 6},
{city: 'Istanbul', temp: 39},
{city: 'Rome', temp: 25}
];
var actual = findColdHot(input);
var expected = {'Coldest Place': 'Oslo', 'Hottest Place': 'Nairobi'};
console.log(actual)

我想知道如何使用for循环,了解最冷和最热的城市。我还尝试将最冷和最热的变量更改为:

let coldest = array.[0].temp
let hottest = array[0].temp

然后启动for循环i=1,但仍然不起作用

我得到的不是预期的输出:

{ 'Coldest Place': 'Berlin', 'Hottest Place': 'Helsinki' }

{ 'Coldest Place': 'Berlin', 'Hottest Place': 'Nairobi' }

任何帮助都将不胜感激!

我对现有代码进行了一些更改,现在它正在中工作

// function
function findColdHot(array) {
// create an empty object
var resultObj = {};
// create coldest and hottest variables
let coldest = array[0];
let hottest = array[0];
// iterate over the array
for (let i = 0; i < array.length; i++) {
if (array[i].temp > hottest.temp) {
hottest = array[i];
} else if (array[i].temp < coldest.temp) {
coldest = array[i];
}
}
// create coldest and hottest properties
resultObj['Coldest Place'] = coldest.city;
resultObj['Hottest Place'] = hottest.city;
// return result object
return resultObj;
}
// tests
var input = [
{city: 'Helsinki', temp: 12},
{city: 'Berlin', temp: 10},
{city: 'Oslo', temp: 4},
{city: 'Nairobi', temp: 39},
{city: 'Paris', temp: 6},
{city: 'Istanbul', temp: 39},
{city: 'Rome', temp: 25}
];
var actual = findColdHot(input);
var expected = {'Coldest Place': 'Oslo', 'Hottest Place': 'Nairobi'};
console.log(actual)

您将最冷和最热的城市定义为Infinity,我认为它解释为数字。然后将这个数字与字符串值进行比较,字符串值是城市名称。

确保不要混合变量类型,尤其是在JavaScript中。

function findColdHot(array) {
// create an empty object
var resultObj = {};
// create coldest and hottest variables
let coldest = array[0];
let hottest = array[0];

// iterate over the array
for (let i = 0; i < array.length; i++) {
if (array[i].temp > hottest.temp) {
hottest = array[i];
} else if (array[i].temp < coldest.temp) {
coldest = array[i];
}
}
// create coldest and hottest properties
resultObj['Coldest Place'] = coldest.city
resultObj['Hottest Place'] = hottest.city;
// return result object
return resultObj;
}

最新更新