js 面试题:求城市的平均年龄

it2023-07-30  72

求出所有城市相同的平均年龄。

数据效果图: 模板:

// 求城市的平均年龄 const people = [{ name: "tom", age: 25, city: "chengdu " }, { name: "som", age: 35, city: "beijing " }, { name: "frank", age: 45, city: "shanghai " }, { name: "mary", age: 35, city: "chengdu " }] function Fc(people) { } console.log(Fc(people)) // {“chengdu ”: 30,“beijing ”:35,“shanghai ”:45}

最后输出:

{“chengdu ”: 30,“beijing ”:35,“shanghai ”:45}

代码实现1:

// 求城市的平均年龄 const people = [{ name: "tom", age: 25, city: "chengdu " }, { name: "som", age: 35, city: "beijing " }, { name: "frank", age: 45, city: "shanghai " }, { name: "mary", age: 35, city: "chengdu " }] function Fc(people) { let result = {}; let city = []; people.map((item, index) => { if (index == 0) { city.push(item.city); } else { let isExist = false; for (let i = 0; i < city.length; i++) { if (item.city == city[i]) { isExist = true; } } if (isExist == false) { city.push(item.city); } } }); for (let j = 0; j < city.length; j++) { result[city[j]] = 0; let len = 0; people.map(item => { if (item.city == city[j]) { result[city[j]] += item.age; len++; } }); if (len > 1) { result[city[j]] = result[city[j]] / len; } } return result; } console.log(Fc(people)) // {“chengdu ”: 30,“beijing ”:35,“shanghai ”:45}

代码实现2:

// 求城市的平均年龄 const people = [{ name: "tom", age: 25, city: "chengdu " }, { name: "som", age: 35, city: "beijing " }, { name: "frank", age: 45, city: "shanghai " }, { name: "mary", age: 35, city: "chengdu " }] function Fc(people) { const result = {}; const len = {}; people.map((item, index, key) => { if (!result[item["city"]]) { result[item["city"]] = 0; len[item["city"]] = 0; } result[item["city"]] += item.age; len[item["city"]]++; }); for (let i in result) { result[i] = result[i] / len[i]; } return result; } console.log(Fc(people)) // {“chengdu ”: 30,“beijing ”:35,“shanghai ”:45}

代码实现3:

function Fc(people) { const result = {}; const len = {}; people.map((item, index) => { let keys = Object.keys(item); let values = Object.values(item); if (!result[values[2]]) { result[values[2]] = 0; len[values[2]] = 0; } result[values[2]] += values[1]; len[values[2]]++; }); for (let i in result) { result[i] = result[i] / len[i]; } return result; }
最新回复(0)