Проблема с игровой задачей на JavaScript

151
28 апреля 2019, 00:50

Вот условие:

Вам необходимо поделить всех нанятых матросов на 2 команды, согласно следующим правилам: те, чей возраст меньше 20 лет или больше 40 - отправляются на первый корабль, все остальные - на второй. Это позволит молодым матросам перенять опыт более старших коллег.

В качестве исходных данных вы получите словарь, где ключами будут выступать фамилии матросов, а значениями - их возраст. После того, как все матросы будут поделены между кораблями, вам необходимо отсортировать их внутри каждого из списков в алфавитном порядке.

Привожу мой вариант решения.

* P.S. Не судите строго, только начинаю учить JS.*

function twoTeams(sailors) { 
  var first_ship = []; 
  var second_ship = []; 
  for (var name in sailors) { 
    if (20 > sailors[name] > 40) { 
      first_ship.push(name); 
    } else { 
      second_ship.push(name); 
    } 
  } 
  first_ship.sort(function(a, b) { 
    if (a.first_ship > b.first_ship) { 
      return 1; 
    } 
    if (a.first_ship < b.first_ship) { 
      return -1; 
    } 
    return 0; 
  }); 
  second_ship.sort(function(a, b) { 
    if (a.second_ship > b.first_ship) { 
      return 1; 
    } 
    if (a.second_ship < b.first_ship) { 
      return -1; 
    } 
    return 0; 
  }); 
  twoTeams({ 
    'Smith': 34, 
    'Wesson': 22, 
    'Coleman': 45, 
    'Abrahams': 19 
  })

Answer 1

function twoTeams(sailors) { 
  var first_ship = []; 
  var second_ship = []; 
  for (var name in sailors) { 
    if (sailors[name] < 20 || sailors[name] > 40) { 
      first_ship.push(name); 
    } else { 
      second_ship.push(name); 
    } 
  } 
  first_ship.sort(function(a, b) { 
    if (a > b) { 
      return 1; 
    } 
    if (a < b) { 
      return -1; 
    } 
    return 0; 
  }); 
  second_ship.sort(function(a, b) { 
    if (a > b) { 
      return 1; 
    } 
    if (a < b) { 
      return -1; 
    } 
    return 0; 
  }); 
  console.log('first_ship = ', first_ship); 
  console.log('second_ship = ', second_ship); 
} 
twoTeams({ 
  'Smith': 34, 
  'Wesson': 22, 
  'Coleman': 45, 
  'Abrahams': 19 
});

READ ALSO
Подключение js (symfony)

Подключение js (symfony)

Подскажите, почему не отрабатывает скрипт appjs? А именно не выводится "console log" и "alert"? В консоли никаких ошибок нет

173
Как передать массив в следующий promise js

Как передать массив в следующий promise js

Хотелось бы передать в промис (тот что после комментария в коде) айди пользователя, помимо переменной lenta, сейчас передается только lenta:

200
Отфильтровать объект JS

Отфильтровать объект JS

Есть объект с вложениями, нужно отфильтровать его ветки по нужному значению в листе

140