Перебор и подсчет объектов внутри объектов внутри массивов - PullRequest
0 голосов
/ 09 октября 2018

Я пытаюсь вернуть количество людей, которые живут в Валенсии.

Например, приведенное ниже значение arr вернет счет 2. 2. 1003 *

const arr = [
      { name: 'Cassandra', lives: { country: 'Spain', city: 'Valencia' }, age: 32.5 },
      { name: 'Cassandrella', lives: { country: 'Spain', city: 'Valencia' }, age: 35.55 }
    ]

У меня проблемы с доступомобъекты и с циклом над объектом внутри объекта внутри массива.Это код, который я получил до сих пор.Я знаю, что я где-то ошибаюсь, но я не могу решить это

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

Ответы [ 3 ]

0 голосов
/ 09 октября 2018
function countPeopleInValencia(people) {
    return people.filter(p => p.lives.city === 'Valencia').length;
}

const arr = [
    { name: 'Cassandra', lives: { country: 'Spain', city: 'Valencia' }, age: 32.5 },
    { name: 'Cassandrella', lives: { country: 'Spain', city: 'Valencia' }, age: 35.55 }
]


console.log(countPeopleInValencia(arr))
0 голосов
/ 09 октября 2018

это может быть один лайнер

arr.filter(function(o){return o.lives.city==="Valencia"}).length

или

$.map(arr,function(o){return o.lives.city==="Valencia"}).length
0 голосов
/ 09 октября 2018

Вам необходимо принять проверку в качестве второго параметра для оператора for.

for (var i = 0; i < people.length; i++) {
//              ^^^^^^^^^^^^^^^^^         check

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

const arr = [{ name: 'Cassandra', lives: { country: 'Spain', city: 'Valencia' }, age: 32.5 }, { name: 'Cassandrella', lives: { country: 'Spain', city: 'Valencia' }, age: 35.55 }];

console.log(countPeopleInValencia(arr));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...