Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сравнить 2 массива (https://javascript.ru/forum/misc/81439-sravnit-2-massiva.html)

Liubov 26.11.2020 13:29

Сравнить 2 массива
 
Помогите решить задачу:

Мы проанализировали роботов.
Нужно сравнить результаты роботов попарно(compareRobots), сравниваться будет сумма веса всех грузов, которые перенес каждый робот (firstRobotResults, secondRobotResults) в день. Кто из роботов эффективнее, тот и пойдет на продажу.

Мое решение:
function compareRobots(firstRobotResults, secondRobotResults) {

if(firstRobotResults>secondRobotResults){
return 'First robot for sale!';
}else if(secondRobotResults>firstRobotResults){
return "Second robot for sale!";
}else{
return 'Both robots for sale!';
}
}

Vlasenko Fedor 26.11.2020 14:13

Вам сюда
https://learn.javascript.ru/array-methods#sort-fn
отсортируйте массив первый и пли последний в зависимости от сортировки будет ваш :)

рони 26.11.2020 14:18

Цитата:

Сообщение от Vlasenko Fedor
отсортируйте массив первый и пли последний в зависимости от сортировки будет ваш

это как?
:-?
Цитата:

Сообщение от Liubov
сумма веса всех грузов

может не sort, а reduce()

Vlasenko Fedor 26.11.2020 14:28

Цитата:

Сообщение от рони
это как?

пусть TC даст вводные данные
предпологалось подобное
const robots = [{name: 'Ivan', sum: 20}, {name: 'Petr', sum: 40}, {name: 'Igor', sum: 70}]

Liubov 26.11.2020 21:07

Спасибо!

Liubov 27.11.2020 12:30

Не получается...
 
function compareRobots(firstRobotResults, secondRobotResults) {


firstRobotResults.reduce((sum, current) => sum + current);
secondRobotResults.reduce((sum, current) => sum + current);

if(firstRobotResults>secondRobotResults){
return 'First robot for sale!';
}

if(firstRobotResults<secondRobotResults){
return "Second robot for sale!";
}

if(firstRobotResults=secondRobotResults){
return 'Both robots for sale!';
}
}

voraa 27.11.2020 13:20

Если вы учитесь, то надо читать документацию
https://developer.mozilla.org/ru/doc...s/Array/Reduce

reduce не просто применяется к массиву, а еще возвращает значение.

Vlasenko Fedor 27.11.2020 13:24

Liubov,
Почему я вам предложил сортировку, а не reduce
Стоит раз отсорировать массив по возростанию а затем брать элементы последний элемент arr.pop()
Сортировку делаете один раз, далее arr.pop()
Первого, на продажу, второго и так далее пока не закончатся
Мыслите глобально :)

voraa 27.11.2020 13:32

Цитата:

Сообщение от Liubov
сравниваться будет сумма веса всех грузов,

И при чем тут сортировка?

рони 27.11.2020 14:25

Liubov,
Пожалуйста, отформатируйте свой код!

Для этого его можно заключить в специальные теги: js/css/html и т.п., например:
[html run]
... минимальный код страницы с вашей проблемой
[/html]

О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.


Часовой пояс GMT +3, время: 17:08.