javascript - JS如何返回一个城市的居住人数?

标签 javascript arrays javascript-objects city

我是编码新手,并被提出了这个问题,但我似乎无法使我的代码工作。有人有什么建议吗?

这是我收到的问题:

此函数接收以下格式的人员对象数组:

[{ name: 'Sandra', lives: { country: 'UK', city: 'Manchester' }, age: 32 }]

该函数应返回居住在巴伦西亚市的人口数量

这是我编写的代码;

function countPeopleInValencia(people) {
let count = 0
for (let i = 0; i < people.length; i++) {
  if (people.city[i] === 'Valencia') {
    count ++ }
  else {return 0}
  }
  return count
}

这就是我的代码将要运行的对象;

describe("countPeopleInValencia", () => {
it("returns 0 when nobody is from Valencia", () => {
expect(
  countPeopleInValencia([
    {
      name: "Sandra",
      lives: { country: "UK", city: "Manchester" },
      age: 32
    },
    {
      name: "Sandrella",
      lives: { country: "Spain", city: "Bilbao" },
      age: 32.5
    }
  ])
).to.equal(0);
  });
  it("returns the length of the array when everyone is from Valencia",   () => {
  expect(
  countPeopleInValencia([
    {
      name: "Cassandra",
      lives: { country: "Spain", city: "Valencia" },
      age: 32.5
    },
    {
      name: "Cassandrella",
      lives: { country: "Spain", city: "Valencia" },
      age: 35.55
    }
  ])
).to.equal(2);
 });
it("returns the number of people who are actually from the fair city of Valencia", () => {
expect(
  countPeopleInValencia([
    {
      name: "Melissandra",
      lives: { country: "Spain", city: "Valencia" },
      age: 55.5
    },
    {
      name: "Melissandrella",
      lives: { country: "Spain", city: "Valencia" },
      age: 55.555
    },
    {
      name: "Keith",
      lives: { country: "UK", city: "Newport Pagnell" },
      age: 2
    }
  ])
).to.eql(2);
expect(
  countPeopleInValencia([
    {
      name: "Imeldarina",
      lives: { country: "Spain", city: "Valencia" },
      age: 15.2
    },
    {
      name: "Bob",
      lives: { country: "Wales", city: "Abertillery" },
      age: 555555555555.555
    },
    {
      name: "Terry",
      lives: { country: "England", city: "Newport Pagnell" },
      age: 0.00000002
    }
  ])
).to.equal(1);
});
});

最佳答案

除了将计数移到 for 循环之外之外,您还应该更正

people.city[i]

people[i]['lives']['city']

你的功能:

function countPeopleInValencia(people) {
  let count = 0
  for (let i = 0; i < people.length; i++) {
    if (people[i]['lives']['city'] === 'Valencia') {
      count++;
    }
  }
  return count
} 

关于javascript - JS如何返回一个城市的居住人数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53886135/

相关文章:

c++ - 如何使用为构造函数指定的大小来初始化 C++ 中的数组?

Javascript对象创建方法

javascript - javascript 函数无法生成精确的更改

javascript - 响应图像 map 插件不起作用

javascript:执行 appendChild(node) 然后尝试读取 node.clientWidth 失败

java - 使用 JSONObject 在 Java 中为以下结构创建嵌套 JSON 对象?

javascript - 从 API 随机生成国家/地区名称

javascript - Function.prototype 不会在控制台中显示所有内置属性和方法

javascript - 美化vscode插件,如何去除;从行尾?

用于播放和暂停视频的 Javascript 函数