Сравните ключи свойств объекта со значениями свойств объекта в массиве, верните «Total Points» - PullRequest
0 голосов
/ 19 мая 2019

Ссылка на Codewars kata .В общем, насколько я понимаю:

  • Если ключ свойства (x) больше значения свойства (y), добавьте 3 пункта к points.

  • Если ключ свойства (x) меньше значения свойства (y), добавьте 0 баллов к points.

  • Если ключ свойства (x) равен значению свойства (y), добавьте 1 пункт к points.

Мне нужно пройти через каждое отдельное свойство, чтобы сравнить значение x со значением y.Но то, что я пытаюсь, не работает:

function points(games) {

  let points = 0;

  for (let key in games) {
    let item = games[key];
    let x = item[0];
    let y = item[1];
    //compare x values against y values in items
    if (x > y) {
      points += 3;
    }
    if (x < y) {
      points += 0;
    }
    if (x === y) {
      points += 1;
    }
  }
  return points;
}

console.log(points(["1:0", "2:0", "3:0", "4:0", "2:1", "3:1", "4:1", "3:2", "4:2", "4:3"]));

Это возвращает 0.

Как я могу перебрать каждое свойство в массиве, чтобы сделать сравнение в каждыйиндивидуальная собственность ?

РЕДАКТИРОВАТЬ - После разделения строк на массивы для сравнения я все еще не понимаю, как сравнивать x значения в массивах и значения y:

function points(games) {
  let points = 0;

  for (let i = 0; i < games.length; i++) {
    let properties = games[i].split();

    if (properties[0] > properties[1]) {
      points += 3;
    }
    if (properties[0] < properties[1]) {
      points += 0;
    }
    if (properties[0] === properties[1]) {
      points += 1;
    }
  }
  return points;
}

1 Ответ

1 голос
/ 19 мая 2019

Подробнее о уменьшите и карту для получения дополнительной информации

function points(games) {

  return games.map(game => {
    let points = 0;
    let item = game.split(':');
    let x = item[0];
    let y = item[1];
    //compare x values against y values in items
    if (x > y) {
      points += 3;
    }
    if (x < y) {
      points += 0;
    }
    if (x === y) {
      points += 1;
    }
    return points;
  }).reduce((sum, curr) => (sum += curr),0);
}

console.log(points(["1:0", "2:0", "3:0", "4:0", "2:1", "3:1", "4:1", "3:2", "4:2", "4:3"]));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...