Как получить значения объектов внутри объектов - PullRequest
0 голосов
/ 11 января 2019

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

userRatings = {
   "Ryan" => {"Avengers" => 8, "Little Mermaid" => 8, "Inception" => 
9},
   "Clay" => {"Avengers" => 9, "Inception" => 10, "Independence Day" 
=> 7},
   "Christine" => {"Avengers" => 9, "Little Mermaid" => 8, 
"Inception" => 7},
   "Jon" => {"Avengers" => 5, "Little Mermaid" => 2, "Inception" => 
8},
   "David" => {"Avengers" => 3, "Inception" => 8, "Independence Day" 
=> 6}
}

function averageMovieRatings(obj) {
  var ratingObj = {};

  for (var k in obj) {
    var name = obj[key];

    for (var j in name) {
      if (ratingObj[j] === undefined) {
        ratingObj[j] = name[j];
      } else {
        ratingObj[j] += name[j];
      }
    }
  }
  return ratingObj;
}

1 Ответ

0 голосов
/ 11 января 2019

Вам нужен действительный JSON

var userRatings = {
    "Ryan": {
        "Avengers": 8,
        "Little Mermaid": 8,
        "Inception": 9
    },
    "Clay": {
        "Avengers": 9,
        "Inception": 10,
        "Independence Day": 7
    },
    "Christine": {
        "Avengers": 9,
        "Little Mermaid": 8,
        "Inception": 7
    },
    "Jon": {
        "Avengers": 5,
        "Little Mermaid": 2,
        "Inception": 8
    },
    "David": {
        "Avengers": 3,
        "Inception": 8,
        "Independence Day": 6
    }

}

В коде вашей функции измените [ключ] на [k]

function averageMovieRatings(obj) {
  var ratingObj = {};

  for (var k in obj) {
    var name = obj[k];

    for (var j in name) {
      if (ratingObj[j] === undefined) {
        ratingObj[j] = name[j];
      } else {
        ratingObj[j] += name[j];
      }
    }
  }
  return ratingObj;
}
averageMovieRatings(userRatings);

Вы должны получить этот объект в качестве результата

{
    "Avengers": 34,
    "Inception": 42,
    "Independence Day": 13,
    "Little Mermaid": 18
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...